繁体   English   中英

如何在 Amazon Athena 中查询 json?

[英]How to query a json in Amazon Athena?

我有一个类似于以下的 json 数组结构:

[elem1
 elem2 
 attr
  -- code1
  -- code2
]

我能够上传这些 json 并正确保留它们的格式,并使用 AWS Glue 抓取 json,我得到了所有正确的数据结构元素(attr 有很多正确提取的子元素)。

当我 go 到雅典娜时; 但是,我做了一个select * ,我得到了 3 个基本列(elem1、elem2、attr),但是这些行将每个 json 作为一个整体:

elem1                                            |elem2                                                
---------------------------------------------------------------------------------------------------
{elem1:"a",elem2:"b",attr:{code1:"1",code2:"2"}} |{elem1:"a",elem2:"b",attr:{code1:"1",code2:"2"}}

(以 attr 作为最后的列名)

有趣的是,当我对数据进行关系化并将其制成 parquet 文件时,所有字段都被保留了,但我担心某种数据丢失,因为一行存储了多个 json,所以可能存在某种覆盖问题。

关于如何进行的任何想法? 我一直在尝试寻找在 Athena 上查询 json 的方法,但这可能只是 json 本身的问题(我下载了 json 并在视觉上看起来很好)。

您使用的 JSON 格式不起作用的原因是因为这个 该行为是预期的,并且为了使您的 JSON 文件正常工作,每条记录必须出现在单独的行上。 另请参阅有关要求在 Athena 中解析 JSON 编码数据讨论,请确保每个 JSON 文档都在自己的行中,并用新行分隔。

我最终不得不像在这篇文章中所做的那样完全重新格式化 json 文件。 当然,Athena 确实支持执行 json 查询,我建议使用DBeaver进行更复杂的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM