【发布时间】:2021-11-20 14:11:12
【问题描述】:
Athena (Trino SQL) 使用字段(点表示法)解析 JSON 文档(在 Athena 中称为文档 1 的表列)
如果底层 json(Athena 中称为文档 1 的表列)是{a={b ... 的形式
我可以在 Athena (Trino SQL) 中使用
document1.a.b
但是,如果 JSON 包含 {a={"text": value1 ...
引号将不正确解析。
有没有办法用引号对“字段”进行 JSON 解析?
如果没有,是否有一种优雅的方式来解析“文本”并获取值为 1 的字符串? [请看我下面的评论]。
我不能更改 json 及其 Athena“表”中的引号,因此我需要在 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的副本
【问题讨论】:
-
可以强制转换(检索为 varchar),然后应用标准 Trino 运算符,例如子字符串、位置等。语法会很长,但如果有足够的耐心看透它,它可以工作.如果有人有比此评论更具描述性的答案,请发布。
标签: json format amazon-athena json-deserialization trino