【问题标题】:Sequence file name being used as key in Hadoop output?序列文件名用作 Hadoop 输出中的键?
【发布时间】:2010-06-30 17:32:52
【问题描述】:

我正在尝试使用 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 [the 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 - 输出格式文本

【问题讨论】:

    标签: python hadoop mapreduce


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      相关资源
      最近更新 更多