我试图将包含逗号分隔数组的列强制转换为Hive中的字符串。
SELECT email_address, CAST(explode(GP_array AS STRING)) AS GP
FROM dm.TP
我收到以下错误
行:1-失败:SemanticException [错误10081]:SELECT子句之外不支持UDTF,也不嵌套在表达式中
答案 0 :(得分:1)
explode函数将数组分解为多行。返回具有单列(col)的行集,该数组中的每个元素一行。
您将需要concat_ws函数将逗号分隔的数组值连接为String。
功能: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将返回由数组值构造的逗号分隔的字符串。