2016-12-05 5 views
1

int配列の要素を連結して、の1つの文字列に連結しようとしています。int arrayのelemetsをHiveの文字列に連結する方法

関数 "concat_ws"は文字列配列に対してのみ機能するので、文字列としてのキャスト(my_int_array)を試みましたが、機能しません。

提案がありますか?

答えて

2

を:

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; 
+0

最初の解決策は完全に機能します!ありがとう! +1 – Kamaney

0

最も簡単な方法は、この特定のタスクを実行するためのカスタムUDFを書くことであるようだ:/ binに/猫を使用して変換してみ

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)); 
    } 
} 
関連する問題