我正在尝试使用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
答案 0 :(得分: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