我有一些以前使用json_each(x)从Postgresql提取的数据,我正在数据库迁移后在Presto中寻找与json_each等效的数据,以将我的数据提取到多行中。原始格式是这样的 {“ 0”:100.0,“ 57000”:75.0,“ 47000”:80.0}
预期的输出将键和值分成多行的2列
有什么主意吗?
答案 0 :(得分:3)
这可以通过将Presto JSON functions与UNNEST
组合来完成。步骤是:
json_parse
UNNEST
table function 以下是包含您的示例数据的查询:
WITH t AS (SELECT '{"0":100.0,"57000":75.0,"47000":80.0}' AS raw_json)
SELECT key, value
FROM
t,
UNNEST(
CAST(json_parse(raw_json) AS map(integer, double))
) x(key, value)
为便于将来参考,此处介绍了所有功能:https://prestosql.io/docs/current/functions.html