Я пытаюсь использовать 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
Я сделал следующие настройки для первого преобразователя, и все начало работать.
#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