【发布时间】:2016-09-10 08:17:28
【问题描述】:
我是猪新手。我正在尝试过滤文本文件并将其存储在 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.你期望得到什么输出?是 (pattern,created_at,id,user_id,text),这是一个模式 + 每条记录一条推文吗? 2、过滤器乱了;只有 google_* 模式使用 A = FILTER data BY 模式匹配 'google_.*';不过,这不是您的异常的原因。
-
感谢您的回复@patrungel。预期输出为(模式)({完成所有推文}。请您建议我如何获得这个。
标签: hadoop hbase apache-pig