我有一个类似于以下内容的json数组结构:
[elem1
elem2
attr
-- code1
-- code2
]
我能够上传这些json并正确保存它们的格式,并使用aws glue对json进行爬网,我得到了所有正确的数据结构元素(attr有许多正确提取的子元素)。
当我去雅典娜的时候;但是,我做了一个 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并查看了它的结构,它看起来很好)。
2条答案
按热度按时间nafvub8i1#
最后,我不得不完全重新格式化json文件,就像我在本文中所做的那样。athena当然支持json查询,我建议使用dbeaver进行更复杂的查询。
dced5bon2#
您正在使用的json格式之所以不起作用,就是因为这个原因。这种行为是预期的,为了让json文件正常工作,每个记录必须出现在单独的行中。另外,请参阅本文,讨论在athena中解析json编码数据的需求,确保每个json文档都在自己的行中,并用新行分隔。