python - MapReduce按Python元组排序

标签 python sorting hadoop mapreduce tuples

我正在使用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

谢谢

最佳答案

如果您的值是整数,则可以使用eval函数来避免删除/转换任务。这是您想要的工作示例:

f = open('sourceFile.txt')
L = f.readlines() 
f.close()
MyList = sorted( map(eval,L) , key=lambda x: x[0])

关于python - MapReduce按Python元组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36972430/

相关文章:

python - 如何组合 python 列表并根据第一个元素在列表中创建列表?

c# - 获取目录中按名称排序的文件列表

sql - 对行进行分组,使每组的列总和不超过 10

python - 通过两个函数运行循环,将彼此的输出作为输入

python - 如何将图片导入google colab

c++ - 如何在整数四面体中找到具有最小可能路径的最大和?

python - 如何在 Python 中清理这个选择排序函数?

hadoop - 如何在 Pig Latin 中放置带引号字符串的参数?

windows - hadoop安装在window 10路径错误

python - 计算 Python 中多维数组中达到或超过阈值的次数