【发布时间】:2017-02-05 08:56:35
【问题描述】:
我在 PIG 中有数据,列名为
关键字、campaign_id、日期、时间、display_site、was_clicked、cpc、国家、展示位置
我想做的是找到点击率高的关键字。
所以,我试图理解为什么下面的代码给了我 Invalid Scalar projection 错误
grouped = GROUP data BY keyword;
by_keyword = FOREACH grouped
{
clicked = FILTER data BY was_clicked == 1;
total = COUNT(data.keyword);
GENERATE group, ((double)COUNT(clicked) / total) AS ctr;
}
我得到的错误:
37,632 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse:
<line 59, column 33> Invalid scalar projection: clicked : A column needs to be projected from a relation for it to be used as a scalar
Details at logfile: /home/cloudera/pig_1486224821223.log
任何帮助将不胜感激。
编辑:
data = LOAD '/user/cloudera/pig_demo/ad_data.txt' AS (keyword:chararray,campaign_id:chararray,
date:chararray, time:chararray,display_site:chararray, was_clicked:int,
cpc:int, country:chararray, placement:chararray);
记录样本:
tablet C6 5/1/2013 3:47:10 movienet.example.com 0 102 USA TOP
【问题讨论】:
-
您能否提供加载语句以及示例记录。
-
@franklinsijo 提供了示例记录和加载语句。
-
无法重现错误。添加了更多与
,分隔文本相同模式的记录。为我工作! -
@franklinsijo 这很奇怪。您能帮我理解错误的含义吗?
-
你用的是什么版本的猪?
标签: hadoop apache-pig cloudera