【问题标题】:Getting Error while running PIG script运行 PIG 脚本时出错
【发布时间】:2014-12-09 14:52:42
【问题描述】:
x = load '/home/manish/Work/inputs/testInput.txt' using PigStorage(',') AS (key:chararray , value:int);
y = group x bt key;
r = foreach y { m = generate x.value AS one; ord_m = ORDER m BY one desc; lim_m = LIMIT ord_m 3; generate group, lim_m;};

得到 ERROR 为:

2014-12-09 20:07:45,978 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 4, column 29>  mismatched input 'x' expecting LEFT_PAREN

即在第三行。

r = foreach y { m = generate x.value AS one; ord_m = ORDER m BY one desc; lim_m = LIMIT ord_m 3; generate group, lim_m;};

【问题讨论】:

  • 你能告诉我你在这个脚本中尝试了什么吗?没有 foreach 就不能使用 generate 命令。
  • 我的输入格式为:1,3 1,4 3,78 2,5 3,6 6,76 2,45 3,65 3,45 4,45 现在我想要我的 o /p 的格式:1 3,4 2 4,45 3 45,65,78 像这样。
  • 这就是为什么我想按 x.value 而不是 x 对其进行排序的原因。如果可能的话试试吧。我在这方面面临一个问题。无论如何感谢您的回复
  • 感谢完成。 :)

标签: hadoop apache-pig


【解决方案1】:

你可以试试这个吗?

x = load '/home/manish/Work/inputs/testInput.txt' using PigStorage(',') AS (key:int , value:int);
y = group x by key;
r = foreach y {
                 ord_m = ORDER x BY value  desc;
                 lim_m = LIMIT ord_m 3;
                 generate group, lim_m;
              };
dump r;

【讨论】: