gpt4 book ai didi

java - 试图理解一个基本的 WordCount MapReduce 示例

转载 作者:可可西里 更新时间:2023-11-01 14:44:28 27 4
gpt4 key购买 nike

最近开始使用 Hadoop 并努力理解一些事情。这是我正在查看的基本 WordCount 示例(计算每个单词出现的次数):

Map(String docid, String text):
for each word term in text:
Emit(term, 1);

Reduce(String term, Iterator<Int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, sum);

首先,Emit(w,1) 应该做什么?我注意到在所有示例中,我看到第二个参数始终设置为 1,但我似乎找不到相关解释。

此外,只是为了澄清一下 - 我说 term 是键,而 sum 在 Reduce 中形成键值对(分别)是否正确?如果是这种情况,values 是否只是从 Map 发出的每个 term 的 1 列表?这是我理解它的唯一方法,但这些只是假设。

对于菜鸟问题​​,我深表歉意,我看过教程,但很多时候我发现使用了很多令人困惑的术语,而且总体上基本的东西比实际情况更复杂,所以我正在努力对此没有什么意义。

感谢任何帮助!

最佳答案

Take this input as an example word count input.

Mapper 会将这个句子拆分成单词。

Take,1
this,1
input,1
as,1
an,1
example,1
word,1
count,1
input,1

然后,reducer 接收相同单词(或 key)的“组”和分组值的列表,就像这样(另外对键进行排序,但这对于这个例子并不重要)

Take, (1)
this, (1)
input (1, 1)
etc...

如您所见,键 input 已“缩减”为单个元素,您可以对其进行循环并对值求和并像这样发出

Take,1
this,1
input,2
etc...

关于java - 试图理解一个基本的 WordCount MapReduce 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com