Apache pig 根据Pig脚本中的sum查找5个最受欢迎的项目

Apache pig 根据Pig脚本中的sum查找5个最受欢迎的项目,apache-pig,Apache Pig,我正试图找到三个最受欢迎的地点,拥有最多的点击率。 所以我需要查看每个位置的tripCount总数,并返回最大的n 我的资料如下: LocationID tripCount tripDistance 101 40 4.6 203 29 1.3 56 25 9.3 101 17 4.5 66 5

我正试图找到三个最受欢迎的地点,拥有最多的点击率。 所以我需要查看每个位置的tripCount总数,并返回最大的n

我的资料如下:

LocationID  tripCount  tripDistance
101            40           4.6
203            29           1.3
56             25           9.3
101            17           4.5
66             5            1.1
13             5            0.5
203            10           1.2
558            8            0.5
56             10           5.5 
所以我期待的结果是:

 101     57 
 203     39
 56      35
到目前为止,我的代码是:

B = GROUP UNION_DATA BY DOLocationID;
C = FOREACH B {                          
DA = ORDER UNION_DATA BY passenger_count DESC;                
DB = LIMIT DA 5;                         
GENERATE FLATTEN(group), FLATTEN(DB.LocationID), FLATTEN(DB.dropoff_datetime);
}

我遗漏了什么?我需要做什么才能得到预期的结果?

下面的一段代码应该可以得到您想要的结果。 为了更好的理解和可读性,我将语句分解为简单的部分。另外,您提供的别名和代码似乎不完整,所以我完全从头开始重新编写

LocationID、tripCount、tripDistance

cat > trip_data.txt 
    101,40,4.6
    203,29,1.3 
    56,25,9.3 
    101,17,4.5 
    66,5,1.1 
    13,5,0.5 
    203,10,1.2 
    558,8,0.5
    56,10,5.5
清管器代码:

A = load '/home/ec2-user/trip_data.txt' using PigStorage(',') as (LocationID,tripCount,tripDistance);
    describe A;
    B = GROUP A BY LocationID;
    describe B;
    dump B;
    C = FOREACH B GENERATE group, SUM(A.tripCount);
    describe C;
    dump C;
    D = ORDER C BY $1 DESC;
    describe D;
    dump D;
    RESULT = LIMIT D 3;
    describe RESULT;
    dump RESULT;