我有一张蜂巢桌,由Spark/Parquet更新
CREATE TABLE IF NOT EXISTS user
(
name STRING,
creation_date DATE,
cards map<STRING,STRING>
) STORED AS PARQUET ;
Run Code Online (Sandbox Code Playgroud)
假设我想查询每个用户的Gobelin卡数量.
我的查询如下所示:
select * from user where card["Gobelin"] IS NOT NULL ;
Run Code Online (Sandbox Code Playgroud)
结果看起来像这样
KillerZord1001 2016-01-02 {"Archer":"2","Gobelin":"6"}
HalfAMill 2016-02-05 {"Witch":"7","Gobelin":"8"}
Run Code Online (Sandbox Code Playgroud)
但我想要的是我正在寻找的关键的价值,更像是:
KillerZord1001 2016-01-02 6
HalfAMill 2016-02-05 8
Run Code Online (Sandbox Code Playgroud)
Hive可以执行此类查询吗?
Rob*_*giu 12
你可以干脆做
SELECT name, creation_date, card["Gobelin"] FROM USER
WHERE card["Gobelin"] IS NOT NULL
Run Code Online (Sandbox Code Playgroud)