【问题标题】:Invalid scalar projection in PIGPIG 中的标量投影无效
【发布时间】: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


【解决方案1】:

猪 0.15 版。

输入文件data.txt:

tablet  C6  5/1/2013    3:47:10 movienet.example.com    0   102 USA TOP
tablet  C6  5/1/2013    3:47:10 movienet.example.com    0   102 USA TOP
tablet  C6  5/1/2013    3:47:10 movienet.example.com    0   102 USA TOP
tablet  C6  5/1/2013    3:47:10 movienet.example.com    1   102 USA TOP

脚本:

data = LOAD '/path/data.txt' AS (keyword:chararray,campaign_id:chararray,
  date:chararray, time:chararray,display_site:chararray, was_clicked:int, 
  cpc:int, country:chararray, placement:chararray);
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;
}
dump by_keyword

给我正确的结果:

(tablet,0.25)

【讨论】:

  • 好的,所以在终端重启了PIG并再次加载数据文件,然后只执行上述命令。成功了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
相关资源
最近更新 更多