hadoop-计算单词共现(edge case)

qpgpyjmq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(465)

假设我想使用hadoop计算单词共现(测量两个单词相继出现的频率)。所以这是一个众所周知的问题,有一个众所周知的解决方案。对于Map程序读取的每个文档,它输出成对的((w,u),1),其中w和u是一个接一个出现的单词。然后,缩减器对每个(w,u)对的出现次数求和。
我的问题如下:hdfs将大文件划分为块(128m或256m),每个Map器在不同的块上操作。所以上面的算法会漏掉计算两个块边界上的单词对。例如,如果原始文档中有单词“hello world”,并且在拆分为块之后,“hello”被放置为块1的最后一个单词,“world”被放置为块2的第一个单词,那么上述算法将不计算这种共现情况。
我们如何用hadoop处理这种边缘情况?
谢谢,艾莉莎

jucafojl

jucafojl1#

这通常由hadoop透明地处理(请参阅hadoop进程记录如何跨块边界拆分?(例如)

相关问题