【问题标题】:SUM function in PIGPIG 中的 SUM 函数
【发布时间】:2016-06-24 18:05:28
【问题描述】:

开始学习 Pig latin 脚本并坚持以下问题。我在同一个主题上经历了类似的问题,但没有任何运气!想求所有年龄字段的总和。

  DUMP X;
(22)(19)
grunt> DESCRIBE X;
X: {age: int}

我尝试了几个选项,例如:

Y = FOREACH ( group X all ) GENERATE SUM(X.age);

但是,低于异常。

 Invalid field projection. Projected field [age] does not exist in schema: group:chararray,X:bag{:tuple(age:int)}.

感谢您的时间和帮助。

【问题讨论】:

  • 也发布您的脚本。你想做什么?
  • 样本数据; (史密斯,{(猛龙队,1),(叶子,2)},[年龄#22])(卡罗尔,{(洋基队,1),(蓝鸟队,2),(骑士队,3)},[年龄# 19]) 脚本代码:A = LOAD 'input/pigData/pig_expressions.txt' AS T: tuple(f1:chararray, f2:bag {T2:tuple(t1:chararray, t2:int)}, f3:map[] ); X = FOREACH A GENERATE T.f3#'age' AS age:int;
  • 您可以编辑您的问题并发布这些步骤。有人可能会在这里提供帮助。
  • 你可以试试 X.$0.age

标签: apache-pig apache-pig-grunt


【解决方案1】:

我认为 Y 投影应该像你写的那样工作。这是相同的 mi 小示例代码,这对我来说很好。

 X = LOAD 'SO/sum_age.txt' USING PigStorage('\t') AS (age:int);
 DESCRIBE X;
 Y = FOREACH ( group X all ) GENERATE 
     SUM(X.age);
 DESCRIBE Y;
 DUMP Y;

所以你的问题看起来很奇怪。我使用了以下输入数据:

-bash-4.1$ cat sum_age.txt 
22
19

你能用我在这里插入的脚本尝试相同的数据吗?

【讨论】:

  • 感谢您的时间和帮助。您提供的示例确实有效。但是,我得到的数据并不好。
  • 你能分享一些你所拥有的输入数据的例子吗?
  • (史密斯,{(猛龙, 1),(叶子, 2)}, [年龄#22])
  • (carol,{(yankees, 1),(blue jays, 2), (cavaliers, 3)}, [age#19])
  • 你有这个的猪模式文件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多