我用Python编写了一个Mapper和Reducer,并使用Hadoop流媒体在Amazon的elasticmapreduce(EMR)上成功地执行了它。在
最终结果文件夹包含三个不同文件part-00000、part-00001和part-00002中的输出。但我需要输出为一个单独的文件。我有办法做到吗?在
这是我的映射程序代码:
#!/usr/bin/env python
import sys
for line in sys.stdin:
line = line.strip()
words = line.split()
for word in words:
print '%s\t%s' % (word, 1)
这是我的减速机代码
^{pr2}$我需要这个输出作为一个单独的文件。在
一种非常简单的方法(假设Linux/UNIX系统):
对小数据集/处理使用single reduce,或者对作业的输出文件使用getmerge选项。在
我对上述问题的解决方案是执行以下hdfs命令:
其中/hdfs/path是包含作业输出的所有部分(part-*****)的路径。 hadoopfs的-getmerge选项将把所有作业输出合并到本地文件系统上的单个文件中。在
相关问题 更多 >
编程相关推荐