SparkSql数组Array常用函数

1、array:array(val1, val2, ...)

说明:产生一个数组

select array(1,2,3)

2、int:array_size(array)

说明:返回一个数组的长度

select array(1,2,3) --3

3、boolean:array_contains(array, value)

说明:判断一个数组中是否包含某个值。返回值为 true 或 false

SELECT array_contains(array(1,2,3),2) --true

4、 array:array_sort(array),array:sort_array(array[, ascendingOrder])

说明:对一个数组进行排序,array_sort升序排序,sort_array可指定升降序,true为升序,false为降序

sort_array(array(2,1,3),ture) ---1,2,3
sort_array(array(2,1,3),false) ---3,2,1
array_sort(array(2,1,3)) ---1,2,3

5、array:array_except(array1, array2)

说明:返回 array1 中不在 array2 中的所有元素

SELECT array_except(array(1, 2, 3), array(1, 3, 5));
 --[2]

6、array:array_intersect(array1, array2)

说明:返回两个数组的交集,即包含在两个数组中的所有元素

SELECT array_intersect(array(1, 2, 3), array(1, 3, 5));
 --[1,3]

7、array:array_union(array1, array2)

说明:将两个数组合并成一个新的数组,不包含重复元素

SELECT array_union(array(1, 2, 3), array(1, 3, 5));
 --[1,2,3,5]

8、string:array_join (array, delimiter[, nullReplacement])

说明:将一个数组转换成一个字符串,元素之间用 delimiter 分隔,如果有 null 值则用 nullReplacement 替代,如果没有设置nullReplacement过滤掉所有null值

SELECT array_join(array('hello', 'world'), ' ');
-- hello world
SELECT array_join(array('hello', null ,'world'), ' ');
-- hello world
SELECT array_join(array('hello', null ,'world'), ' ', ',');
-- hello , world

9、T:array_max(array)

说明:返回最大值,null值跳过

SELECT array_max(array(1, 20, null, 3));
 --20

10、T:array_min(array)

说明:返回最小值,null值跳过

SELECT array_min(array(1, 20, null, 3));
 --1

11、explode(array)

说明:将一个数组拆分成多行,每行包含一个数组元素。可以和 LATERAL VIEW 一起使用,用于对数组类型的字段进行拆分。

SELECT explode(array(10, 20));
 --10
 --20

12、posexplode(array)

说明:与 explode 类似,但返回的每行还包含一个表示数组下标的字段。

SELECT posexplode(array(10,20));
 --0  10
 --1  20
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值