在雅典娜,我正在把一些嵌套的json文件读入一个表中。实际包含嵌套json的字段在原始数据的不同文件中的字段数不一致。
有时数据看起来像这样:
{
"id": "9f1e07b4",
"date": "05/20/2018 02:30:53.110 AM",
"data": {
"a": "asd",
"b": "adf",
"body": {
"sid": {
"uif": "yes",
"sidd": "no",
"state": "idle"
}
},
"category": "scene"
}
}
其他时候数据看起来像这样:
{
"id": "9f1e07b4",
"date": "05/20/2018 02:30:45.436 AM",
"data": {
"a": "event",
"b": "state",
"body": {
"persona": {
"one": {
"movement": "idle"
}
}
},
"category": "scene"
}
}
其他时候,“body”字段同时包含“sid”结构和“persona”结构。
如你所见,在“body”中给出的字段并不总是一致的。我试图在createexternal表查询中添加所有可能的字段及其结构。但是,包含“body”字段的“data”列在我在雅典娜中“preview table”时仍然没有填充并保持空白。
在create表ddl中,是否有一种方法指示我要用空值填充每个文件的嵌套json中不存在的所有列?
此外,为查询中的字段指定的“名称”不必与原始json中的键值相对应。雅典娜似乎只是在读这个结构而不是别的。有没有办法直接指出哪个json键对应哪个athena字段名?因此,如果某个文件的“正文”中缺少某些字段,雅典娜可以知道缺少哪一个字段并将其填充为空?
暂无答案!
目前还没有任何答案,快来回答吧!