我正在尝试使用python的dumbo包从hadoop获取序列文件中的文件名。 但它为我提供了某种标识符。如何将其映射到文件名?
以下是关于获取文件名的hadoop系统的步骤:
步骤1)生成序列文件
命令:
hadoop jar /mnt/Clustering/Checking/AllJars/binarypig-1.0-SNAPSHOT-jar-with-dependencies.jar com.endgame.binarypig.util.BuildSequenceFileFromDir /mnt/Clustering/Checking/text_files text_files_seq
步骤2)通过hadoop在序列文件上运行python脚本
命令:
dumbo start dumbo_map_red.py -input text_files_seq -output out_res -hadoop /usr/local/hadoop
步骤3)在本地目录中获取输出
命令:
dumbo cat out_res/part-* -hadoop /usr/local/hadoop > out_res.txt
其中dumbo_map_red.py是
#!/usr/bin/env python
def mapper(key, value):
yield key, 1
def reducer(key, values):
yield key, sum(values)
if __name__ == "__main__":
import dumbo
dumbo.run(mapper, reducer)
请帮我知道如何获取文件名。 如果他们是python中的其他包,这将允许我以这种方式工作,请告诉我..
答案 0 :(得分:0)
最后得到了序列文件中映射标识符到实际文件的提示。
标识符是目录中文件的MD5。