猪 - 窗口和等级函数与案例陈述

时间:2016-09-28 15:59:15

标签: apache-pig

我正在尝试将此SQL代码写入apache pig:

  

rank()over(按src_str排序分区           (当stat_cd ='A'然后1时,当stat_cd ='B'然后2其他3结束时)asc)作为rank1

有没有人知道这种逻辑可以在Apache Pig中实现的方式?

1 个答案:

答案 0 :(得分:0)

嗯,逻辑很简单。您需要创建其他字段,通过该字段对数据进行排名。

A = LOAD '$SOME_DATA'AS (src_str:chararray, stat_cd:chararray, ololo:charrary);

B = FOREACH A GENERATE
--# loading all fields and creating a new in the end
    *,
    (stat_cd=='A' ? 1 : 
       (stat_cd =='B' ? 2 : 3)) AS rank; 

C = ORDER B BY rank ASC; 

希望它有所帮助!