Hive - 如何将数组转换为字符串?



我正在尝试将包含逗号分隔数组的列强制转换为 Hive 中的字符串。

SELECT email_address, CAST(explode(GP_array AS STRING)) AS GP
FROM dm.TP

我收到以下错误

行:1 - 失败:语义异常 [错误 10081]:UDTF 在 SELECT 子句外部不受支持,也不嵌套在表达式中

分解函数 将数组分解为多行。返回具有单列 (col( 的行集,数组中的每个元素对应一行。

您需要concat_ws函数将逗号分隔的数组值连接到字符串。

函数:concat_ws(字符串SEP,数组(

参考: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

SELECT email_address, concat_ws(',', GP_array) AS GP FROM dm.TP

concat_ws将返回从数组值构造的逗号分隔字符串

最新更新