如何在Cloud Data Fusion Wrangler中将常规数据类型转为数组
在Cloud Data Fusion中实现字符串到数组类型的转换
一、Wrangler内直接实现的方法
1. 按分隔符拆分字符串为数组
若字符串以固定分隔符(如逗号、分号)分隔内容,使用split函数生成数组列:
在Wrangler编辑器中添加转换步骤,输入指令:
derive type:array value:split($your_string_column, ',') as:new_array_column
替换$your_string_column为目标字符串列名,','为实际分隔符,new_array_column为新数组列的名称。
2. 将单个字符串转为单元素数组
只需把单个字符串包装成仅含自身的数组,使用array函数:
添加转换步骤:
derive type:array value:array($your_string_column) as:new_array_column
3. 正则提取生成数组
针对需要提取字符串中特定内容组成数组的场景,使用regex_extract_all函数:
例如提取字符串中所有数字组成数组:
derive type:array value:regex_extract_all($your_string_column, '\\d+') as:number_array
二、其他Cloud Data Fusion组件方案
如果Wrangler的内置函数无法满足复杂需求,可选用以下组件:
- Java Evaluator组件:编写自定义Java代码处理字符串到数组的转换,适配复杂业务逻辑,直接输出数组类型的新列。
- Transform组件:通过Apache Pig或Spark SQL语法实现转换:
- Pig语法示例(按逗号拆分):
data = FOREACH input GENERATE *, STRSPLIT(your_string_column, ',') AS new_array_column; - Spark SQL语法示例:
SELECT *, split(your_string_column, ',') AS new_array_column FROM input
- Pig语法示例(按逗号拆分):
内容的提问来源于stack exchange,提问作者naveen
相关产品推荐
相关产品推荐

