ck的array函数

一、相关函数使用总结:

序号

函数

解释及用法

1

arrayJoin

获取每一行并将他们展开到多行

2

arrayFilter

按照过滤条件筛选数组中的元素

3

arrayMap

arrayMap(func,arr1,...) ,func是一个lambda表达式,通过该方法作用于原始数组中

每一个数据,得到最终结果。

4

arrayZip

合并多个数组,变为多个数组相同位置元素组成的元组(tuples)

5

arrayFirst

返回数组中第一个匹配元素

6

arrayLast

返回数组中最后一个匹配元素

7

arrayFirstIndex

返回数组中第一个匹配元素的索引

8

arrayLastIndex

返回数组中最后一个匹配元素的索引

9

arrayAvg

聚合计算,平均值

10

arrayMax

聚合计算,最大值

11

arrayMin

聚合计算,最小值

12

arraySum

聚合计算,求和

13

arrayUniq

聚合计算,去重计数

14

arrayProduct

聚合计算,连乘

15

arrayAll

聚合计算,未知

16

arrayReduce

聚合计算,可选择各种函数

17

arrayDifference

返回一个数组,其中包含所有相邻元素对之间的差值

18

arrayCount

计算数组中包含指定元素的个数countEqual(arr, x) 返回数组中等于x的元素的个数。相当于arrayCount(elem - > elem = x,arr)

19

arrayCumSum

累加求和

20

arrayCumSumNonNegative

累加求和当返回值包含小于零的值时,该值将被替换为零,并以零参数执行后续计算

21

arrayConcat

合并参数中传递的所有数组

22

arrayStringConcat

合并参数中传递的所有数组,数组之间增加字符进行相连

23

arrayElement

从数组中获取索引为“n”的元素。

24

arraySlice

截取数组的部分元素,得到一个新的子数组,arraySlice(array, offset[, length])

25

arrayDistinct

返回一个包含所有数组中不同元素的数组


1、arrayJoin
## arrayJoin
select  arrayJoin([1, 2, 3] as src) as dst, 'Hello', src
1,Hello,"[1,2,3]"
2,Hello,"[1,2,3]"
3,Hello,"[1,2,3]"
2、arrayFilter
## arrayFilter
select  arrayFilter(x -> x like '%World%', ['Hello', 'abc World']) as res;  --['abc World']
select 
    arrayFilter(
        (i, x) -> x like '%World%',
        arrayEnumerate(arr),
        ['Hello', 'abc World'] as arr)
    as res;  --2
3、arrayMap、arrayZip
## arrayMap、arrayZip
select  arrayMap(x -> (x + 2), [1, 2, 3]) ;  --[3,4,5]
select  arrayMap((x, y) -> (x, y), [1, 2, 3], [4, 5, 6]); --[(1,4),(2,5),(3,6)]
select  arrayZip(['a', 'b', 'c'], [5, 2, 1]);  --[('a',5),('b',2),('c',1)]
4、arrayFirst、arrayLast、arrayFirstIndex、arrayLastIndex
## arrayFirst、arrayLast、arrayFirstIndex、arrayLastIndex
select  arrayFirst(x -> x like '%World%', ['Hello', 'abc World','Hello_ya']) as res;  --abc World
select  arrayFirstIndex(x -> x like '%World%', ['Hello', 'abc World','Hello_ya']) as res;  --2

select  arrayLast(x -> x like '%World%', ['Hello', 'abc World','acd_World']) as res;  --acd_World
select  arrayLastIndex(x -> x like '%World%', ['Hello', 'abc World','acd_World']) as res;  --3
5、arrayAvg、arrayMax、arrayMin、arraySum、arrayUniq、arrayProduct、arrayAll、arrayReduce
## arrayAvg、arrayMax、arrayMin、arraySum、arrayUniq、arrayProduct、arrayAll、arrayReduce
select  arrayAvg([1, 2, 3, 4]) as res;  --2.5
select  arrayMax([1, 2, 3, 4]) as res;  --4
select  arrayMin([1, 2, 3, 4]) as res;  --1
select  arraySum([2, 3]) as res;;  --5
select  arraySum(x -> x*x, [2, 3]) as res;; --13
select  arrayUniq([1,2,2,4,3]); -- 4
select  arrayProduct([1,2,3,4,5,6]) as res;  --720
select  arrayAll([1, 2, 3, 4]) as res;  --1
select  arrayReduce('median', [2, 11, 7]);  --7
select  arrayReduce('max', [1,2,3]) as minNum,--最大值 3
select  arrayReduce('min', [1,2,3]) as maxNum,--最小值 1
select  arrayReduce('sum', [1,2,3]) as sumNum;--求和 6
6、arrayDifference
## arrayDifference
select  arrayDifference([1, 2, 3, 4]) --[0,1,1,1]
7、arrayCount
## arrayCount
select arrayCount(x -> x, [1, 2, 3, 4]);  --4
select arrayCount(e-> e>=3,[1,2,3,4]);  --2
8、arrayCumSum、arrayCumSumNonNegative
## arrayCumSum、arrayCumSumNonNegative
select  arrayCumSum([1, 1, 1, 1]) as res;  --[1,2,3,4]
select  arrayCumSumNonNegative([1, 1, -4, 1]) as res;  --[1,2,0,1]
9、arrayConcat、arrayStringConcat
##  arrayConcat、arrayStringConcat
select arrayConcat(array(1,2),array(2,3),array(4,5)), -- [1,2,2,3,4,5]
select  arrayStringConcat(['a', 'b', 'c', 'd'], '--'); --a--b--c--d
10、arrayElement、arraySlice
## arrayElement、arraySlice
select  arrayElement(['a', 'b', 'c', 'd'], 1) --  -1 返回数组第n个元素. 元素是从1开始的
select  arrayElement(['a', 'b', 'c', 'd'], 5) --  无结果
select  arraySlice([1,2,3,4,5,6], 1, 3); -- [1,2,3]
11、arrayDistinct
## arrayDistinct
select  arrayDistinct( [1, 2, 3,3, 4]); -- [1,2,3,4]

二、参考文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值