Как получить фактические данные из кластера Hadoop (после уменьшения карты) с помощью Python API Pydoop? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Python API (pydoop) для сопоставления файлов HDFS, но я хочу знать, как я могу получить исходные данные, используя pydoop или любой другой метод, использующий python.

1 Ответ

0 голосов
/ 07 февраля 2019

Приложения MapReduce (запускаемые либо с Pydoop, либо через стандартный Java-API Hadoop) записывают свои выходные данные в указанный пользователем каталог, создавая один файл для каждой задачи сокращения (или по одному на задачу карты в особом случае заданий только для карт).): part-r-00000, part-r-00001 и т. Д. Вы можете искать эти файлы и читать их содержимое с помощью HDFS API Pydoop:

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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...