我想采用一堆用户功能(比如国家,语言,注册日期......),并以非规范化的“长”格式在Hive中生成它们,即表单行(userid,feature name,特征值),其中特征名称类似于“country”,特征值类似于“US”。
我正在使用Hive 0.13。
下面的示例都有一个功能(国家/地区),为了简单起见,但如果我可以使用一个功能,我会添加更多功能。
查询#1:
select explode(map('country', get_json(json, 'country')))
from users
这样做有两列结果(键,值),其结果如下所示
country US
country CA
...
查询#2:
select id, explode(map('country', get_json(json, 'country')))
from users
失败
FAILED: SemanticException [Error 10081]: UDTF's are not supported
outside the SELECT clause, nor nested in expressions
查询#3:
select key, value
from users
lateral view explode(map('country', get_json(json, 'country')))
失败
FAILED: ParseException line 3:63 cannot recognize input
near '' '' '' in table alias
查询#4:
select key, value
from users
lateral view explode(map('country', get_json(json, 'country'))) as (key, value)
失败
FAILED: ParseException line 3:67 missing EOF at '(' near 'as'
是否有适用的版本?
答案 0 :(得分:2)
让这个工作。
select id, key, value
from users
lateral view explode(map('country', get_json(json, 'country'))) feature_row