数组(Array)是有序的元素序列,组成数组的各个变量称为数组的元素。数组是在程序设计中,为了处理方便把具有相同类型的若干元素按有序的形式组织起来的一种形式。按数组元素的类型不同,数组又可分为数值数组、字符数组等各种类别。数组在各个编程语言里处理方式不同,
常用函数生成:
1、时间序列的生产:以一个月为步长生产2021-01-01到2021-03-01的序列
sequence(to_date('2021-01-01'), to_date('2021-03-01'), interval 1 month)
2、transform 的使用把数组里的所有元素都按照指定方法处理,返回新的数组
例如 将Array 所有元素取出来判断是否包含对应元素,如果包含拼装成指定自负传
regexp_replace(concat_ws('',transform(arrays,x->if(get_json_object(x,'$.typeOrigin')='活动',concat(get_json_object(x,'$.text'),'\\;'),''))),'.$','')
3、数组的交集、并集等相关数组的使用
array_except(array1, array2):返回存在于array1,但不存在于array2里的元素列表,元素去重
array_intersect(array1, array2):返回array1和array2 交集,结果去重
array_union(array1, array2):返回array1和array3 并集,结果去重
三、更多详细
常用函数 |
含义 |
示例 |
输出结果 |
备注 |
---|---|---|---|---|
collect_list(expr) |
多行合并为一行,返回不去重的数组 |
collect_list([字段]) [字段]值分别为 A,A,B,B,C,D |
[A,A,B,B,C,D] |
|
collect_set(expr) |
多行合并为一行,返回去重后的数组 |
collect_set([字段]) [字段]值分别为 A,A,B,B,C,D |
[A,B,C,D] |
|
array(expr, ...) |
多列合并为一列 |
array(1, 2, 3) |
[1,2,3] |
|
split(str, regex[, limit]) [, limit]限制拆分元素数,可省略 |