如何使用apache PIG隔离数据组

时间:2015-06-10 14:31:30

标签: apache-pig grouping

我有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 

我无法确定获得所需输出的逻辑。我正在寻求帮助以获得它。

1 个答案:

答案 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)