gpt4 book ai didi

hadoop - 如何设计MapReduce伪代码以计算单词出现的文档数量?

转载 作者:行者123 更新时间:2023-12-02 22:01:30 26 4
gpt4 key购买 nike

我需要知道该问题的解决方案,但由于无法解决,因此需要一些帮助。谢谢你的时间。

如何修改映射器函数,以便程序计算每个不同单词的文档频率(即包含该单词的文档数量)?

 class MAPPER
method MAP(docid i, doc d)
for all term t ∈ doc d do
EMIT(term t, count 1)

class REDUCER
method REDUCE(term t, counts [c1, c2, . . .])
sum ← 0
for all count c ∈ counts [c1,c2,...] do
sum ← sum + c
EMIT(term t, count sum)

我的解决方案,但我不知道它是否正确。
 class MAPPER
method MAP(docid i, doc d)
for all term t ∈ doc d do
for all document d ∈ doc d do
EMIT(term t, count + 1)

最佳答案

希望以下步骤对您有所帮助。我只是向您介绍这个想法,您可以将其转换为算法。

  • 首先,您必须找到输入拆分的文件名
    由mapper在您的mapper类的setup()方法中处理。引用
    在摘要下方,
    String fileName = ((FileSplit) context.getInputSplit()).getPath().toString();
  • 从您的Mapper类的map()方法中,发出每个单词作为键,然后
    值为在setup()和int中找到的与文件名一致的字符串
    值1.
  • 从Reducer类的reduce()方法中,为每个不同的词
    您将获得字符串列表,其中每个字符串都将包含
    对应的文件名和计数1.
  • 遍历每个键的值列表,并拆分每个值,
    然后将文件名存储在不可重复的本地集合中,例如HashSet
    并计算总和1。
  • 对值列表进行迭代后,您将获得所有值的总和
    计数1,还有一个HashSet,它具有当前文件的不同文件名
    键。在这里,HashSet的大小将是
    键。
  • 从reducer发出键,单词数和文档频率,然后重置sum变量和HashSet。
  • 关于hadoop - 如何设计MapReduce伪代码以计算单词出现的文档数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217491/

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