分组—如何使用ApachePig隔离数据组

qgelzfjb  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(395)

我有数据在里面 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

我无法确定获得所需输出的逻辑。我正在寻找一些帮助来获得它。

velaa5lx

velaa5lx1#

如果用例是在一组固定的价格桶(lt5、gt5到lt10、gt10到lt15)下获取电影的数量,等等。。然后我们可以利用bincond算子。
Pig脚本:

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)

相关问题