gpt4 book ai didi

json - Presto unnest json 映射

转载 作者:行者123 更新时间:2023-12-04 07:47:59 30 4
gpt4 key购买 nike

关注这些帖子:How to cross join unnest a JSON array in PrestoPresto unnest json我无法将我的 JSON 映射到所需的表中。

当我运行这个 presto 时:

SELECT
*
FROM UNNEST(
CAST(
JSON_EXTRACT('{"1":{"a":10,"b":11},"2":{"a":20,"b":21}}', '$.1') AS ARRAY(
VARCHAR
-- ROW(VARCHAR, BIGINT)
-- MAP(VARCHAR, MAP(VARCHAR, BIGINT))
)
)
) AS x(n)

我明白了:

(INVALID_CAST_ARGUMENT) Cannot cast to array(varchar). Expected a json array, but got {
{"a":10,"b":11} ...

但我理想的预期答案是:

  a | b
---+---
10 | 11
20 | 21

如何UNNEST Map 而不是数组?

最佳答案

您的目标的正确 json 路径是 $.* 但通配符 are not supported by presto ,因此您可以将 json 转换为 map of maps 并使用它:

SELECT maps['a'] a, maps['b'] b
FROM (UNNEST(map_values(
CAST(JSON '{"1":{"a":10,"b":11},"2":{"a":20,"b":21}}' AS MAP(VARCHAR , MAP(VARCHAR, INTEGER)))))) as tmp(maps);

关于json - Presto unnest json 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67115472/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com