Имя файла последовательности используется в качестве ключа в выводе Hadoop?

1

Я пытаюсь использовать Dumbo/Hadoop для вычисления TF-IDF для кучи небольшого текста файлы с использованием этого примера http://dumbotics.com/2009/05/17/tf-idf-revisited/

Чтобы повысить эффективность, я упаковал текстовые файлы в последовательность файл с помощью инструмента Stuart Sierra - http://stuartsierra.com/2008/04/24/a-million-little-files

В файле последовательности используются мои исходные имена файлов (324324.txt [ object_id.txt]) в качестве ключа и содержимого файла в качестве значения.

Проблема в том, что каждая строка вывода выглядит так:

[aftershocks, s3://mybucket/input/test-seq-file]        7.606329176204189E-4

Я хочу:

[aftershocks, 324324.txt]       7.606329176204189E-4

Что я делаю неправильно?

Я выполняю работу с помощью:

dumbo start tfidf.py -hadoop /home/hadoop -input s3://mybucket/input/

test-seq-file -output s3://mybucket/output/test3 -param doccount = 11 - outputformat text

Теги:
hadoop
mapreduce

1 ответ

1
Лучший ответ

Я сделал следующие настройки для первого преобразователя, и все начало работать.

#Original version
@opt("addpath", "yes")
def mapper1(key, value):
    for word in value.split():
        yield (key[0], word), 1

#Edits version
def mapper1(key, value):
    for word in value.split():
        yield (key, word), 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню