将 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-pig string 在 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?

使用 Apache Pig 将数据加载到 Hbase 表时,如何排除 csv 或文本文件中没有数据(只有空格)的列?

如何在 PIG 中导入/加载 .csv 文件?