使用pig获取记录子集的最大值和最小值

watbbzwu  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(475)

我正在导入一个csv文件,其中包含一些与下面类似的数据

----------
ID | VALUE
----------
1  |   1
2  |   1
3  |   1
1  |   2
2  |   2
3  |   2
1  |   3
2  |   3
3  |   3

我想做的是得到每个id的最大值和最小值

--------------
ID | MAX | MIN
--------------
1  |  3  |  1
2  |  3  |  1
3  |  3  |  1

我可以使用下面类似的代码获得值列的最大值和最小值

MAX_MIN_VALUE = LOAD 'SampleData.csv'  AS (id:chararray, value:int);
MAX_MIN_VALUE_GROUP = GROUP MAX_MIN_VALUE ALL;
WITH_MAX_MIN = FOREACH MAX_MIN_VALUE_GROUP 
       GENERATE
           FLATTEN(MAX_MIN_VALUE.(id)), MAX(MAX_MIN_VALUE.value), MIN(MAX_MIN_VALUE.value);

我正努力想弄清楚的是如何过滤数据,以便获得每个id的最大值和最小值。在sql中,我会进行自连接,但在pig中找不到等效的方法。
有谁能给我指出一个正确的方向来解决这个问题吗?
提前感谢您的任何想法,非常感谢!真皮

tjrkku2a

tjrkku2a1#

你需要 GROUP BY id 而不是 GROUP ALL .

相关问题