如何解决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 举报,一经查实,本站将立刻删除。