我想用一些 JSON 数据(嵌套)创建一个 Hive 表并对其运行查询?这甚至可能吗?
我已经将 JSON 文件上传到 S3 并启动了一个 EMR 实例,但我不知道在 hive 控制台中输入什么才能让 JSON 文件成为 Hive 表?
有没有人有一些示例命令让我开始,我找不到任何对 Google 有用的东西...
最佳答案
实际上没有必要使用 JSON SerDe。这里有一篇很棒的博文(我与作者没有任何关系):
http://pkghosh.wordpress.com/2012/05/06/hive-plays-well-with-json/
其中概述了使用内置函数 json_tuple 在查询时(不是在表定义时)解析 json 的策略:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-json_tuple
因此,基本上,您的表架构只是将每一行加载为单个“字符串”列,然后根据每个查询的需要提取相关的 json 字段。例如该博客文章中的此查询:
SELECT b.blogID, c.email FROM comments a LATERAL VIEW json_tuple(a.value, 'blogID', 'contact') b
AS blogID, contact LATERAL VIEW json_tuple(b.contact, 'email', 'website') c
AS email, website WHERE b.blogID='64FY4D0B28';
根据我的经验,这已被证明更可靠(我遇到了处理 JSON serdes 的各种神秘问题,尤其是嵌套对象)。
关于json - 如何使用 JSON 数据制作 HIVE 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11479247/