微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Athena 从 JSON 创建表,如何处理多个嵌套结构

如何解决Athena 从 JSON 创建表,如何处理多个嵌套结构

我正在尝试从 json 创建一个表,json 就像

{"ocNo" : "6090","clientSessionKey" : {"office" : {"ortsCode" : 6090},"workstationNo" : 1}}

我试图通过执行以下查询来实现它:

CREATE EXTERNAL TABLE events_tryout(
  ocNo string,clientSessionKey struct<office struct<ortsCode: int>,workstationNo int> 
  ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://lab.ea38-zplus.cap.nonprod.int2/test/'

但是我收到以下错误消息: Failed: ParseException line 1:81 missing : at 'struct' near '<EOF>' line 1:118 missing : at 'int' near '<EOF>' 我检查了 json 是否有效,所以这不是问题。 但是,当我通过删除 ClientSessionKey 运行它并且此嵌套起作用时,这告诉我,问题在于添加一个嵌套。 Athena 可以在从 json 创建表时处理结构内的结构,还是应该采取其他方法

解决方法

问题是在 : 之后缺少一个 office,就像错误消息所说的那样。

: 之后还缺少另一个 workstationNo

试试struct<office:struct<ortsCode:int>,workstationNo: int>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。