我正在寻找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
谢谢
1条答案
按热度按时间omjgkv6w1#
我不回答你的问题,但这里有一个解决方案:如果你只是连接
num1
以及num2
在Map器输出中,默认的排序将起到作用。只需注意打印格式:您需要在非零数字之前控制零的数字(例如。0002
前体0010
,但是2
跟随10
).