Как использовать JsonLoader в pig для загрузки данных

Предположим, у меня есть файл 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]]}

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 был загружен правильно, а не частично. К сожалению, никто не работал. Любая помощь будет оценена

1 ответ

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

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

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

Другие вопросы по тегам