我有一个写Pig脚本的问题
RESULT_SOMETYPE = FOREACH SOMETYPE_DATA_GROUPED GENERATE flatten(group) , SUM(SOMETYPEDATA.DURATION) as duration, COUNT(SOMETYPEDATA.DURATION) as cnt;
这里我想用一些数字替换sum(sometypedata.duration),比如
if(0>Sum > 1000) then put 1
if(1001> Sum > 2000 ) then put 2
if(2001> Sum > 3000 ) then put 3
如何在Pig身上实现这一点
请建议
2条答案
按热度按时间lnlaulya1#
我们可以使用bincond运算符(?:)或case语句(来自wards上的pig版本:0.12)来实现目标。
参考:http://pig.apache.org/docs/r0.12.0/basic.html#arithmetic
jjjwad0x2#
SPLIT
会这样做,但不会在里面FOREACH
循环。pig还有一个三元运算符之类的东西,但这对将结果存储在变量中没有帮助。下面是如何使用split来实现接近您需求的功能。