gpt4 book ai didi

hadoop - 使用 mapreduce 找到两个总和为 45 的数字

转载 作者:可可西里 更新时间:2023-11-01 15:21:20 24 4
gpt4 key购买 nike

我有一个 2GB 的文件存储在 HDFS 中。文件内容如下:

1
24
65
77

....每行一个数字。我想知道两个数字(任意两个),其总和为 45,使用 map reduce。

谁能说出 mapper 的逻辑是什么,reducer 的逻辑是什么?

最佳答案

虽然我同意@cricket_007 的担忧,但有一种方法可以在一个 MapReduce 作业中使用多个映射器和缩减器:

在映射器中,我们假设 x 是原始值并且 y = 45 - x。对于每个 x,创建一个键为 (min(x, y), max(x, y)) 的条目。因此,例如,如果原件是 15,那么您将得到 (15, 30),而如果原件是 40,您会有 (5, 40)。较小的值应该总是第一个,所以键会适本地匹配。条目的值应为 x

在 reducer 中,如果你有两个条目具有相同的键但不同的值,那么你就有一个匹配项,并且可以报告。因为可能存在重复项,您可能会发现多个条目具有相同的键和相同的值。这些应该被忽略,因为它们不符合您的要求。

关于hadoop - 使用 mapreduce 找到两个总和为 45 的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52691099/

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