使用 Presto 的 ANSI SQL 中的 json 数组提取



这是我遇到的问题: 我在 json 格式的 presto 表中有列"xyz"的数据元素,数组格式如下所述:

col1 | col2
a    | {"fruits": ["apple", "banana", "orange"]}
b    | {"fruits": ["apple", "banana", "orange", "grapes"]}

我需要以下格式的数据:

col1 | col2 | col3 | col4  | col5
a    | apple|banana|orange | null
b    | apple|banana|orange | grapes

任何关于如何在 json 中读取数组元素的示例都会非常有帮助

您可以将json_array_extract_scalar()函数与每列的相应索引值一起使用,以将每列值提取为字符串

SELECT col1,
json_array_extract_scalar(col2,'$.fruits[0]') as col2,
json_array_extract_scalar(col2,'$.fruits[1]') as col3,
json_array_extract_scalar(col2,'$.fruits[2]') as col4,
json_array_extract_scalar(col2,'$.fruits[3]') as col5
FROM tab

还可以在上述查询中将json_array_extract_scalar替换为json_array_extract,以获取 JSON 格式的每一列。

相关内容

  • 没有找到相关文章

最新更新