hadoop:按前两个键进行数字排序?

6vl6ewon  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(344)

我正在寻找hadoop(使用流媒体和python)来按前两个键对Map器的输出进行排序;
我的Map绘制程序打印如下 print '%s\t%s\t%s' & (num1, num2, value) 我想让我的减速机接收按 num1 然后 num2 ,以便这些输出:

2   1   C
1   2   A
10  3   D
1   10  B

交付给异径管(假设我们有3个异径管):

1   2   A
1   10  B
-----------
2   1   C
------------
10  3   D

我试过使用 mapred.text.key.partitioner.options 选项将其设置为 -k1n,1 -k2n,2 但这似乎不起作用。
有什么想法吗?
我基本上想让hadoop来执行这个 unix 排序: sort -k1n,1 -k2n,2 我使用的hadoop版本是0.20.2
谢谢

omjgkv6w

omjgkv6w1#

我不回答你的问题,但这里有一个解决方案:如果你只是连接 num1 以及 num2 在Map器输出中,默认的排序将起到作用。只需注意打印格式:您需要在非零数字之前控制零的数字(例如。 0002 前体 0010 ,但是 2 跟随 10 ).

相关问题