在AWS Athena中使用serde格式提取json文件中的数组和嵌套数组 [英] Extract arrays and nested arrays within a json file, using serde format in AWS Athena
本文介绍了在AWS Athena中使用serde格式提取json文件中的数组和嵌套数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
而不是写
customerdata.data.balances[8].data.balances[2].date date_29,
customerdata.data.balances[8].data.balances[3].date date_29
等
我想知道是否有方法可以从.data.Balance数组中获取所有值,例如.data.Balance[*]
推荐答案
不确定您的实际数据类型是什么,但您可以尝试对嵌套数据的每一层使用UNNEST。大概是这样的:
WITH dataset (id, nested) AS (
VALUES (
1,
CAST(
ROW(
1,
ARRAY [
ROW(11, ARRAY [ ROW(111, '1') ]),
ROW(12, ARRAY [ ROW(121, '2') ])
]
) as ROW(id INTEGER, data ARRAY(ROW(id INTEGER, data ARRAY(ROW (id INTEGER, str VARCHAR)))))
)
)
)
SELECT id, t.row.id nested_id, tt.row.id as double_nested_id, tt.row.str
FROM dataset
CROSS JOIN UNNEST(nested.data) AS t (row)
CROSS JOIN UNNEST(t.row.data) AS tt (row);
输出:
id | 嵌套_id | 双嵌套id | str |
---|---|---|---|
1 | 11 | 111 | 1 |
1 | 12 | 121 | 2 |
请注意,以这种方式分解数据可能会影响性能。
这篇关于在AWS Athena中使用serde格式提取json文件中的数组和嵌套数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文