[英]How to concatenate the elements of int array to string in Hive
我正在尝试将 int 数组的元素连接到hive 中的一个字符串。
函数concat_ws
仅适用于字符串数组,所以我尝试了cast(my_int_array as string)
但它不起作用。
有什么建议吗?
尝试使用 /bin/cat 进行转换:
from mytable select transform(my_int_array) using '/bin/cat' as (my_int_array);
第二种选择是更改表并替换分隔符:
1) ALTER TABLE mytable CHANGE COLUMN my_int_array = my_int_array_string string;
2) SELECT REPLACE(my_int_array_string, '\002', ', ') FROM mytable;
似乎最简单的方法是编写自定义 UDF 来执行此特定任务:
public class ConcatIntArray extends UDF {
public String evaluate(ArrayList<Integer> in, final String delimiter){
return in.stream().map(u-> String.valueOf(u)).collect(Collectors.joining(delimiter));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.