我正在尝试按照本教程使用Pig分析Apache访问日志文件: http://venkatarun-n.blogspot.com/2013/01/analyzing-apache-logs-with-pig.html
我坚持使用这个Pig脚本:
grpd = GROUP logs BY DayExtractor(dt) as day;
当我在grunt终端执行时,我收到以下错误:
错误1200:输入'与'期望不匹配' SEMI_COLON无法解析:输入'as'不匹配 期待SEMI_COLON
函数DayExtractor以这种方式从piggybank.jar定义:
DEFINE DayExtractor
org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM-dd');
任何人的想法? 我一直在寻找这个问题。任何帮助都将不胜感激。
答案 0 :(得分:0)
我不确定博客文章的作者是如何使用它的,但据我所知,你不能在as
中使用GROUP BY
。另外,我认为你不能在GROUP BY
中使用UDF。可能是作者有一个不同版本的猪支持这样的操作。要获得相同的效果,您可以将其分为两个步骤:
logs_day = FOREACH logs GENERATE ....., DayExtractor(dt) as day;
grpd = GROUP logs_day BY day;