我有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 我无法确定获得所需输出的逻辑,我正在寻找一些帮助来获得它。
发布于 2015-06-11 13:01:08
如果用例是获取一组固定价格下的电影计数(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转储输出:D :
(5,4)
(5-10,3)
(10-15,3)https://stackoverflow.com/questions/30759421
复制相似问题