如何在pig中使用jsonload加载数据

ss2ws0br  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(267)

假设我有一个json文件,格式如下:

{"kind": "youtubeAnalytics#resultTable", "rows": [["2015-03-23", "a1jkKOrbYuQ", 141],["2015-03-24", "a1jkKOrbYuQ", 14]]}
    {"kind": "youtubeAnalytics#resultTable", "rows": [["2014-03-23", "a1jkKzubYuQ", 141],["2014-03-24", "a1jkKzubYuQ", 14]]}

下面是我编写的pig脚本,它只允许加载和转储文件:

A = LOAD '/user/hdfs/youtube_data_views_' using JsonLoader('kind:chararray, rows:{field:(i1:chararray,i2:chararray,i3:int)}');
    DUMP A;

我得到的结果是:

(youtubeAnalytics#resultTable,)

实际上,我尝试了几十种元组和包的组合,这样我就可以确保a被正确加载,而不是部分加载。不幸的是,没有人工作。任何帮助都将不胜感激

ikfrs5lh

ikfrs5lh1#

原来我要做的就是用象鸟罐。。。以下是您需要注册的jar列表:

REGISTER 'hdfs://10.1.1.154:8020/user/hdfs/pig_jars/elephant-bird-core-4.4.jar';
    REGISTER 'hdfs://10.1.1.154:8020/user/hdfs/pig_jars/elephant-bird-hadoop-compat-4.4.jar';
    REGISTER 'hdfs://10.1.1.154:8020/user/hdfs/pig_jars/elephant-bird-pig-4.4.jar';
    REGISTER 'hdfs://10.1.1.154:8020/user/hdfs/pig_jars/google-collections-1.0-rc1.jar';
    REGISTER 'hdfs://10.1.1.154:8020/user/hdfs/pig_jars/json-simple-1.1.jar';

最后一条建议:避免使用内置的jsonload函数。你将浪费你的时间来得到正确的模式。。。

相关问题