清管器-按不同的减速机订购



我是新来的猪。我想做一个合并连接。满足以下要求:

数据必须在两个连接键上按升序(ASC)排序。

示例文件:

4, The Object of Beauty, 1991,2.8,6150 
1, The Nightmare Before Christmas, 1993,3.9,4568 
2, The Mummy, 1932,3.5,4388 
3, Orphans of the Storm, 1921,3.2,9062 
3, Orphans of the Storm, 1921,3.2,9062
4, The Object of Beauty, 1991,2.8,6150 
5, Night Tide, 1963,2.8,5126 
6, One Magic Christmas, 1985,3.8,5333 
7, Muriel's Wedding, 1994,3.5,6323 
8, Mother's Boys, 1994,3.4,5733 
9, Nosferatu: Original Version, 1929,3.5,5651 
10, Nick of Time, 1995,3.4,5333 

我在PIG中执行了以下命令:

movies = LOAD 'Sample.csv' using PigStorage (',') as (id: int, name, year, rating, duration); 
movies_sorted movies = order by id ASC PARALLEL 3; 
movies_sorted store into 'output_movies';

当我执行

hadoop fs-cat ./output2/part-r-00000

我看到,在不同的分区中有具有相同键的记录。例如,我在两个不同的分区中有一个id为3的记录。据我所知,具有相同键的记录应该始终位于同一分区中。F

怎么了?

在少数情况下,包括ORDER BY和倾斜的JOIN, Pig将打破将给定键的所有记录仅发送给一个reducer的map-reduce约定。(请注意,排序的概念已经超出了map-reduce范式。)但是,您仍然可以保证,如果按顺序遍历reducer的输出(如part-r-NNNNN中的数字所示),则记录将按指定的顺序排列。

相关内容

  • 没有找到相关文章

最新更新