我正在尝试将此SQL代码写入apache pig:
rank()over(按src_str排序分区 (当stat_cd ='A'然后1时,当stat_cd ='B'然后2其他3结束时)asc)作为rank1
有没有人知道这种逻辑可以在Apache Pig中实现的方式?
答案 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;
希望它有所帮助!