将 json 文件加载到 PIG 中
Posted
技术标签:
【中文标题】将 json 文件加载到 PIG 中【英文标题】:Loading a json file into PIG 【发布时间】:2017-09-21 22:02:45 【问题描述】:如何使用 PIG 加载以下 json 文件?
"age":100,"name":"mkyong.com","messages":["msg 1","msg 2","msg 3"]
我尝试了类似的方法,但它给了我例外。
jsoncust_table = LOAD 'customers.json' USING JsonLoader('age:int, name:string, messages:chararray');
【问题讨论】:
你能分享一下这个例外吗?看起来不错。 messages 列作为一个数组看起来像问题,你必须处理它。我不认为,它可以作为chararray。 这是我得到的例外。 ERROR 1200: 语法错误,'string' 处或附近出现意外符号 看起来这只是数组的问题。请参考***.com/questions/26710438/load-json-array-into-pigstring
在 pig 中不是有效的数据类型。使用name: chararray
【参考方案1】:
Pig 没有字符串数据类型。改用chararray
Pig Datatypes
jsoncust_table = LOAD 'customers.json' USING JsonLoader('age:int, name:chararray, messages:chararray');
要加载消息,请使用elephant-bird jar.
【讨论】:
以上是关于将 json 文件加载到 PIG 中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pig Latin 中每行加载一个带有 JSON 数组的文件
将 Hadoop Pig 输出作为 JSON 数据发布到 URL?
在 Hortonworks Sandbox 内的 Pig 脚本中加载 JSON 文件
如何将 CSV/TSV 文件从 Pig 加载/导出到 Pandas?