2015-03-30 6 views
0

Предположим, у меня есть файл JSON в таком виде:Как использовать JsonLoader в свинью, чтобы загрузить данные

{"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]]} 

Follwing является сценарий свинья, которую я написал, который просто позволяет загружать и демпинг файл:

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

и это результат я получаю:

(youtubeAnalytics#resultTable,) 

На самом деле, я попытался десятки комбинаций с кортежей и сумки, так что я могу убедитесь, что A правильно загружен, а не частично. К сожалению, никто не работал. Любая помощь будет принята с благодарностью

ответ

0

Оказывается, что все, что мне нужно сделать, использовал эпиорнисовые баночку ... Вот список банок, которые вам необходимо зарегистрироваться:

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'; 

One последний совет: не используйте встроенную функцию JsonLoader. Вы получите время, чтобы получить правильную схему ...