如何使用python API Pydoop从Hadoop集群中获取实际数据(在缩小地图后)?

时间:2019-02-07 01:16:53

标签: python hadoop

我正在使用python API(pydoop)来映射缩小的HDFS文件,但我想知道如何使用pydoop或其他任何使用python的技术来检索原始数据。

1 个答案:

答案 0 :(得分:0)

MapReduce应用程序(通过Pydoop或通过标准Hadoop Java API运行)将其输出写入用户指定的目录中,为每个reduce任务创建一个文件(在仅地图作业的特殊情况下,为每个map任务创建一个文件) ):part-r-00000part-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())