我有csv
格式的数据,列"movie name", price
我的输出应该是
5 : 5200
5-10 : 500
10-15 : 5140
等等
我试过下面的代码
A = LOAD '/root/pig-0.13.0/scripts/dvd_data/dvd_csv.txt' using PigStorage(',');
B = foeach A generate REPLACE($0, '\\"', ''),$2,$6
我无法确定获得所需输出的逻辑。我正在寻求帮助以获得它。
答案 0 :(得分:0)
如果用例是在一组固定的价格桶(lt5,gt5到lt10,gt10到lt15)等下获得电影的数量,那么我们可以使用bincond运算符。
猪脚本:
A = LOAD 'a.csv' USING PigStorage(',') AS (movie_name:chararray,price:long);
B = FOREACH A GENERATE ((price < 5) ? '5' : ((price < 10) ? '5-10' : ((price < 15) ? '10-15' : '>15'))) AS key, price;
C = GROUP B BY key;
D = FOREACH C GENERATE group, COUNT(B);
DUMP D;
示例输入:a.csv:
Movie1,1
Movie2,2
Movie3,3
Movie4,4
Movie5,5
Movie7,7
Movie9,9
Movie10,10
Movie11,11
Movie12,12
输出:DUMP D:
(5,4)
(5-10,3)
(10-15,3)