我如何使用pythonapi pydoop从hadoop集群中获取实际数据(在Map缩减之后)?

1mrurvl1  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(513)

我正在使用pythonapi(pydoop)Mapreduce hdfs文件,但是我想知道如何使用pydoop或任何其他使用python的技术检索原始数据。

wj8zmpe1

wj8zmpe11#

mapreduce应用程序(使用pydoop或通过标准hadoop java api运行)将其输出写入用户指定的目录,为每个reduce任务创建一个文件(或在仅Map作业的特殊情况下,为每个Map任务创建一个文件): part-r-00000 , part-r-00001 ,等等。您可以使用pydoop的hdfs api查找这些文件并读取其内容:

import pydoop.hdfs as hdfs

MR_OUT_DIR = "hdfs://localhost:9000/user/foo/mr_output"

data = []
for path in hdfs.ls(MR_OUT_DIR):
    if hdfs.path.basename(path).startswith("part-"):
        with hdfs.open(path) as f:
            data.append(f.read())

相关问题