gpt4 book ai didi

hadoop - map 与过滤器操作

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

在第 2 段的第 1 行中,Wiki ( https://en.wikipedia.org/wiki/MapReduce ) 说 map() 也应负责“过滤”。

然而,我的理解是 map() 应仅负责通过“转换”更改数据集的“形式”,而不负责“过滤”。

这条线令人困惑吗?

最佳答案

关于纯 map-reduce(这个 wiki 指的是),在 map 阶段进行过滤是要走的路:

  • 在 map 阶段之前您没有预处理
  • 你应该尽可能减少数据以减轻洗牌和排序阶段的数据负载
  • 因此,map 是您根据需要应用业务逻辑过滤的地方

基本上,由于您只实现 map 和 reduce,您也可以将其解释为:给定阶段 map 和 reduce,在 _map_ 中执行业务过滤,因为在 _reduce_ 中过滤会通过集群发送很多不必要的数据。

希望这能让它更清楚。

在引用 spark 的评论之后进行编辑。

请注意,Spark Streaming API 中的 map() 函数与 map-reduce 中的 map 函数完全不同。

这只是不幸的巧合,它们被称为相同的,因为 spark 在 map-reduce(或 yarn)复杂性之上分层了一个类似流的 API,传统上有一个 map()-function,这是一个来自函数式的概念编程。该映射函数也没有任何类似于发射步骤的内容。

因此:map-reduce 中的 map(除了 map 和 reduce 之外没有其他功能 - 检查您发布的链接中的示例)应该进行过滤。请注意,map-reduce 中的映射对于每个输入都有 0 .. n 个输出。

Spark 中的映射或其他类型的流式 API 应仅执行从一种类型到另一种类型的转换。 (一个输入导致一个输出。)

关于hadoop - map 与过滤器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40459695/

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