2014-12-03 72 views
2

我试图找到相当于the SQL functions GREATEST and LEAST的猪。这些函数分别是汇总SQL函数MAXMIN的标量等效值。等价于SQL最大/最小的猪?

从本质上讲,我希望能够说这样的事情:

x = LOAD 'file:///a/b/c.csv' USING PigStorage() AS (a: int, b: int, c: int); 
y = FOREACH x GENERATE a AS a: int, b AS b: int, c AS c: int, GREATEST(a, b, c) AS g: int; 

我知道我可以用袋和MAX完成这件事,但我从另一种语言到猪和实施翻译将很难整合。

我可以在这里使用“内联”方法吗?例如,我忽略了一些内置函数,或者可能是Piggybank或DataFu中的UDF,这将是理想的!如果有一个完全“内联”版本的包包,我只是没有想到它,那也没关系!

谢谢!

回答

5

事实证明,有一些工作的“内联”基于包的办法:

x = LOAD 'file:///a/b/c.csv' USING PigStorage() AS (a: int, b: int, c: int); 
y = FOREACH x GENERATE a AS a: int, b AS b: int, c AS c: int, MAX(TOBAG(a, b, c)) AS g: int; 
+0

的TOBAG诀窍是真棒!谢谢。 – arun 2015-01-14 20:30:03

+0

很高兴这很有用! :) – sigpwned 2015-01-15 02:52:24