我有一个Hive表,其中一列包含一个JSON对象作为字符串:
json1
{"key1" : "val1", "key2:"val2"}
{"key1" : "val1", "key2:"val4"}
{"key2" : "val2", "key3:"val3"}
我目前正在使用内置的json_tuple函数来查询键值对,例如:
SELECT json1 FROM TABLENAME
LATERAL VIEW json_tuple(TABLENAME.json1,'key2') jsontable as column1
where column1="val2"
我得到这样的结果:
{"key1" : "val1", "key2:"val2"}
{"key2" : "val2", "key3:"val3"}
如何显示结果,键为列,值为行:
key1 key2 key3
val1 val2 NULL
NULL val2 val3
我在JSON对象中有100多个不同的键,因此这不是硬编码的选择,我还尝试使用split(json1)
返回了每个键值对的列表,但是我无法将键显示为专栏,我们将不胜感激!