1
我想將int數組的元素連接到hive中的一個字符串。如何將int數組的元素連接到Hive中的字符串
函數「concat_ws」僅適用於字符串數組,因此我嘗試將(my_int_array作爲字符串)強制轉換,但它不起作用。
有什麼建議嗎?
我想將int數組的元素連接到hive中的一個字符串。如何將int數組的元素連接到Hive中的字符串
函數「concat_ws」僅適用於字符串數組,因此我嘗試將(my_int_array作爲字符串)強制轉換,但它不起作用。
有什麼建議嗎?
嘗試使用變換/斌/貓:
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));
}
}
第一個解決方案完美地工作!謝謝! +1 – Kamaney