【发布时间】:2016-05-18 07:18:42
【问题描述】:
我有带 jsons 的表:
CREATE TABLE TABLE_JSON (
json_body string
);
Json 有结构:
{ obj1: { fields ... }, obj2: [array] }
我想从数组中选择所有元素,但我不能。
例如,我可以从第一个对象中获取所有字段:
SELECT f.fields...
FROM (
SELECT q1.obj1, q1.obj2
FROM TABLE_JSON jt
LATERAL VIEW JSON_TUPLE(jt.json_body, 'obj1', 'obj2') q1 AS obj1, obj2
) as json_table2
LATERAL VIEW JSON_TUPLE(TABLE_JSON.obj1, 'fields...') f AS fields...;
但是对于数组这个方法不起作用。
我尝试过使用
...
LATERAL VIEW explode(json_table2.obj2) adTable AS arr;
但是 obj2 - 带有数组的字符串。如何将string-json转为数组并爆炸?
【问题讨论】:
-
数组的大小跨行是固定的吗?
标签: sql arrays json hadoop hive