Hive-⾏转列(explode)
场景:通过parseHtml UDF解析⼀串HTML,返回⼀以 @@ 分割的字符串,使⽤split分割字符串进数组中,然后将数组的元素转列。开始的写法
SELECT
id,
legal_person,
explode(split(parseHtml(legal_person_track_record),'@@')) as record,
amac_status
FROM db_amac.dc_amac_manager limit 10;
hive 字符串转数组--问题
FAILED: SemanticException [Error 10081]: UDTF's are not supported outside the SELECT clause, nor nested in expressions
解决
select
id,
legal_person,
record,
amac_status
from db_amac.dc_amac_manager lateral view explode(split(parseHtml(legal_person_track_record),'@@')) recordTable as record;
Lateral View是Hive中提供给UDTF的conjunction,它可以解决UDTF不能添加额外的select列的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。