繁体   English   中英

如何在 Hive 中将 int 数组的元素连接到字符串

[英]How to concatenate the elements of int array to string in Hive

我正在尝试将 int 数组的元素连接到一个字符串。

函数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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM