Athena (Trino SQL) 使用字段(点表示法)解析 JSON 文档

Athena (Trino SQL) parsing JSON document using fields (dot notation)

Athena (Trino SQL) 使用字段(点表示法)解析 JSON 文档(table 在 Athena 中称为文档 1 的列)

如果基础json(table列在Athena中称为文档1)的形式为{a={b ... 我可以使用

在 Athena (Trino SQL) 中解析它
document1.a.b

但是,如果 JSON 包含 {a={"text": value1 ...

引号不会正确解析。

有没有办法对带引号的 'field' 进行 JSON 解析?

如果不是,有没有一种优雅的方法来解析“文本”并获取值为1的字符串? [请看下面我的评论]。

不能更改json中的引号及其雅典娜“table”所以我需要一些在Trino中工作的东西SQL语法。

错误消息的格式为:SQL Error [100071] [HY000]: [Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. SYNTAX_ERROR: Expression [redacted] is not of type ROW

注意:这是不是Oracle Dot Notation Question

的副本

点符号仅适用于 struct<…> 等列类型。您可以对 JSON 数据执行此操作,但从错误和您的描述来看,情况似乎并非如此。我假设您的专栏是 string.

类型

如果您在 string 列中有 JSON 数据,您可以使用 JSON 函数通过 JSONPath.[=14= 解析和提取部分数据]