2014-12-03 75 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