我正在尝试找到等同于the SQL functions GREATEST
and LEAST
的猪。这些函数分别是聚合SQL函数MAX
和MIN
的标量等效函数。
基本上,我希望能够说出这样的话:
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
来完成这项工作,但我正在将另一种语言翻译成Pig,并且实施起来很难整合。
我可以在这里使用“内联”方法吗?我忽略了一些内置函数,或者可能是Piggybank或DataFu中的UDF,这将是理想的!如果有一个完全“内联”的版本使用行李而我只是没想到它,那也没关系!
谢谢!
答案 0 :(得分: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;