gpt4 book ai didi

hadoop - MapReduce:给定数字文件,输出不重复/唯一数字的数量

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

如果输入文件为:1,1,2,2,3,4,4,4,5,5,5,5,6,6,6,则MapReduce的输出应为 6 (即,唯一整数集{1,2,3,4,5,6}的大小)。

我在实现上述方面需要帮助。我知道我们可以通过发出map()中的每个数字与null值来过滤出重复项,然后类似地将reduce()中的key与null值输出到结果文件/控制台。

但是,如果我直接需要获取不同数字的数量,该如何处理?

我当前的实现是构建一个Set,将其作为Mapper的输出传递,并在Reducer中,合并传递给它的所有Set,然后返回该结果Set的计数。请注意,这更多的是设计问题,而不是特定于库的(例如,Hadoop)实现问题。

最佳答案

使用映射器构建哈希集。使输出为IntWritable和NullWritable。

将所有输入值添加到集合中。

写出哈希表的大小。

将精简任务的数量设置为0,因为它不需要。

如果必须使用Reducer,则从映射器输出(空值)。

执行与上述相同的操作。

如果可以使用Hive,Pig或Spark,则存在替代(更简单)的方法

关于hadoop - MapReduce:给定数字文件,输出不重复/唯一数字的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46758602/

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