在Pig中使用DayExtractor时,错误1200不匹配输入'as'期待SEMI_COLON

时间:2013-09-20 08:49:38

标签: java hadoop apache-pig

我正在尝试按照本教程使用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');

任何人的想法? 我一直在寻找这个问题。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不确定博客文章的作者是如何使用它的,但据我所知,你不能在as中使用GROUP BY。另外,我认为你不能在GROUP BY中使用UDF。可能是作者有一个不同版本的猪支持这样的操作。要获得相同的效果,您可以将其分为两个步骤:

logs_day = FOREACH logs GENERATE ....., DayExtractor(dt) as day;
grpd = GROUP logs_day BY day;