hadoop,段落字数

l7wslrjt  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(339)

通常,hadoop示例定义如何对一个文件或多个文件进行字数计算,字数计算的结果将来自整个集合!
我希望为每个段落做字数统计,并存储在不同的文件中,如paragh(i)\u wordcnt.txt。
怎么做(问题是mapper运行整个集合,reducer最终收集输出!
我能做点什么吗,比如说,如果我达到了一个特定的分数,写下结果!)如果文件内容:

para1
...
para2
...
para3
...

我能喜欢看到para2写para1的字数结果吗?或者如果以另一种方式将每个段落写入单独的文件中,如何按此顺序执行

loop: 
   file(i)(parai)->Mapper->Reducer->multipleOutput(output-file(i))->writetofile(i);
   i++;
   goto loop;
taor4pac

taor4pac1#

你需要让阅读器一次读一段。请参阅以下问题:重写recordreader以立即读取段落而不是行

idfiyjo8

idfiyjo82#

我写的基本基金会,因为我们可以这样做。
我想我们必须运行链接Map器和还原程序。
在第一个Map器中,必须使用recordreader并将其键设置为整个段落。这样,我们将得到尽可能多的关键段落你有。然后你需要使用的身份减缩减缩器,并再次让减缩器的输出到一个新的Map器将得到关键段落。
现在,由于您的新Map程序中有段落,您可以根据需要调整著名的字数代码(只需在此处用值替换键,其余的都一样)。
因为您在一个reducer中嵌套了mapper,所以在单独的文件中获取段落的字数将很容易。
如果我的方法不对,请告诉我。

相关问题