2017-05-05 16 views
0

输入格式查找最大的生猪表存在于每个列中的所有数据:使用猪

Year_2010 , Year_2009, Year_2008 

1.2, 2.4, 3.5 
3.4, 3.8, 5.7 
4.5, 5.6, 3.4 
3.7, 2.6, 4.8 

我曾尝试下面的脚本,它适用于1列。

A = Load '/Year.csv' Using PigStorage(',') as (Year_2010:double,Year_2009:double,Year_2008:double); 
B = group A ALL; 
max = Foreach B generate group,MAX(A.Year_2010); 

预期输出:

Year_2010, Year_2009, Year_2008 

4.5, 5.6, 5.7 
+0

你尝试过这么远吗? –

+0

A =加载'/Year.csv'使用PigStorage(',')作为(Year_2010:double,Year_2009:double,Year_2008:double); B = A组ALL; max = Foreach B生成组,MAX(A.Year_2010); **我知道这将适用于一列,但找到它的三列,我不知道该怎么尝试** –

+0

好吧,这是一个开始,你在正确的轨道。只适用于所有列MAX。 –

回答

0

列上应用MAX之前在MAX。集团看一看。

A = Load '/Year.csv' Using PigStorage(',') as (Year_2010:double,Year_2009:double,Year_2008:double); 
B = GROUP A ALL; 
C = FOREACH B GENERATE MAX(A.Year_2010),MAX(A.Year_2009),MAX(A.Year_2008); 
DUMP C; 

输出:

enter image description here

+0

获取错误,如下所示: 错误:无法推断org.apache.pig.builtin.MAX的匹配函数为多个或不匹配。请使用明确的演员。 –

+0

检查你的数据,看起来你在''之后有一个空格,检查你正在加载的数据类型。它必须是double.Also MAX应该在caps.s.用“C”而不是max关系 –

+0

非常感谢: )它确实有效 –