Я новичок в свинье. Я пытаюсь отфильтровать текстовый файл и сохранить его в hbase. Вот пример файла вводаСвинья скрипт фильтр получения файла ОШИБКА
sample.txt
{"pattern":"google_1473491793_265244074740","tweets":[{"tweet::created_at":"18:47:31 ","tweet::id":"252479809098223616","tweet::user_id":"450990391","tweet::text":"rt @joey7barton: ..give a google about whether the americans wins a ryder cup. i mean surely he has slightly more important matters. #fami ..."}]}
{"pattern":"facebook_1473491793_265244074740","tweets":[{"tweet::created_at":"11:33:16 ","tweet::id":"252370526411051008","tweet::user_id":"845912316","tweet::text":"@maarionymcmb facebook mere ta dit tu va resté chez toi dnc tu restes !"}]}
Сценарий:
data = load 'sample.txt' using JsonLoader('pattern:chararray, tweets: bag {t1:tuple(tweet::created_at: chararray,tweet::id: chararray,tweet::user_id: chararray,tweet::text: chararray)}');
A = FILTER data BY pattern == 'google_*';
grouped = foreach (group A by pattern){tweets1 = foreach data generate tweets.(created_at),tweets.(id),tweets.(user_id),tweets.(text); generate group as pattern1,tweets1;}
Но я получил эту ошибку при запуске сгруппированных:
2016-09-10 13:38:52,995 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: <line 41, column 57> expression is not a project expression: (Name: ScalarExpression) Type: null Uid: null)
1. Какой результат вы ожидаете получить? Это (шаблон, created_at, id, user_id, text), который является шаблоном + одиночный твит на запись? 2. Фильтр перепутан; иметь только код google_ * pattern A = FILTER data BY pattern соответствует 'google _. *'; Однако это не причина вашего исключения. – patrungel
Спасибо за ваш ответ @ patrungel.the ожидаемый результат как (шаблон) ({заполните все твиты}. Не могли бы вы предложить мне, как я могу это получить. – Bunny