我正在使用Python元组,并且有一个看起来像
的文本文件(1,value1)
(2,value2)
(3,value3)
...
(100,value100)
如何将我的MapReduce作业配置为按元组中的第一个键排序为整数?
我的reduce作业需要输出一个排序的元组列表,所以我不想开始用标签替换括号和逗号。转化为元组将会很痛苦。
我使用以下参数从bash运行我的hadoop作业:
hadoop jar /usr/local/Cellar/hadoop/2.*/libexec/share/hadoop/tools/lib/hadoop-streaming-2*.jar
-D mapreduce.job.output.key.comparator.class=org.apache.hadoop.mapred.lib.KeyFieldBasedComparator
-D mapreduce.partition.keycomparator.options=-n
-reducer reducer.py
-input tuples.txt
-output sortedtuples
由于
答案 0 :(得分:1)
如果您的值是整数,则可以使用eval
函数来避免删除/转换任务。以下是您想要的工作示例:
f = open('sourceFile.txt')
L = f.readlines()
f.close()
MyList = sorted( map(eval,L) , key=lambda x: x[0])