- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我查看了 API 并找到了以下两者的文档-
def reduceByKey(partitioner: Partitioner, func: (V, V) ⇒ V): RDD[(K, V)]
它使用关联的 reduce 函数合并每个键的值。这还将在将结果发送到 reducer 之前在每个映射器上执行本地合并,类似于 MapReduce 中的“组合器”。
def reduceByKeyLocally(func: (V, V) ⇒ V): Map[K, V]
它使用关联的 reduce 函数合并每个键的值,但立即将结果作为 Map 返回给 master。这还将在将结果发送到 reducer 之前在每个映射器上执行本地合并,类似于 MapReduce 中的“组合器”。
除了 reduceByKeyLocally 将结果作为 map 返回给 master 之外,我看不出两者有什么区别。
最佳答案
差异是深远的。
使用reduceByKey
,这些对被表示为一个RDD
,这意味着数据在集群中保持分布。当您大规模运营时,这是必要的。
使用 reduceByKeyLocally
,所有分区都返回到 master 并合并到该台机器上的单个 Map
中。类似于 collect
操作,它将所有内容作为 Array
返回给 master,如果您大规模操作,所有这些数据将完全淹没一台机器并击败使用分布式数据抽象的目的。
关于scala - apache spark - 哪一个遇到较少的内存瓶颈 - reduceByKey 或 reduceByKeyLocally?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622873/
我一直试图让它工作一段时间,但每次都失败了。我有 2 个文件。有一个名字列表: Name1 Name2 Name3 Name4 另一个是与几年中一年中每一天的名称关联的值列表: ['0.1,0.2,0
如果我有一个像这样的 K,V 对: (K, (v1, v2)) (K, (v3, v4)) 我怎样才能总结出我得到的值(k, (v1 + v3, v2 + v4)) ? 最佳答案 reduceByKe
我正在 Spark 上编写一个程序,我只是通过键进行聚合。该程序非常简单。我的输入数据只有 2GB,在设置为 local[2] 的多核服务器(8 核,32GB RAM)上运行。那就是使用两个内核进行并
我想使用 RDD 对 Tuple2 ,但是byte[]内容相同的s被认为是不同的值,因为它们的引用值不同。 我没有看到任何要传递给自定义比较器的东西。我可以转换 byte[]进入 String使用显式
嗨,我有代码只是从文档中获取字数。在生成输出之前,我还需要使用 map 来查找数据值。这是代码。 requests .filter(_.description.exists(_.leng
我的输入数据集看起来像 id1, 10, v1 id2, 9, v2 id2, 34, v3 id1, 6, v4 id1, 12, v5 id2, 2, v6 我想要输出 id1; 6,v4 | 1
我的问题类似于PySpark reduceByKey on multiple values但有一个关键的区别。我是 PySpark 的新手,所以我肯定错过了一些明显的东西。 我有一个具有以下结构的 R
我正在使用 Spark 1.5/1.6,我想在 DataFrame 中执行 reduceByKey 操作,我不想将 df 转换为 rdd。 每行看起来像,我有多个 id1 行。 id1, id2, s
我有一个 RDD,其中包含某些对象的计数,然后我在其上应用 reduceByKey(),对所有元素求和(如字数统计示例中所示)。我已将 reduceByKey 转换的输出保存到文本文件中,并且获得了每
为什么 Spark 强制从元组列表构建 RDD,以防进行 reducebykey 转换? reduce_rdd = sc.parallelize([{'k1': 1}, {'k2': 2}, {'k1
我有一个这样的rdd // Structure List[Tuple(x1, x2, value), Tuple(x1, x2, value)] data = [('23', '98', 34), (
我有一个像这样的 rdd: rdd = [((uid1), (product1, price1, date1)), ((uid1), (product2, price2, date2))
我确定这是非常简单的事情,但我没有找到与此相关的任何内容。 我的代码很简单: ... stream = stream.map(mapper) stream = stream.reduceByKey(r
我想对每个键的值列表进行分组,并且正在做这样的事情: sc.parallelize(Array(("red", "zero"), ("yellow", "one"), ("red", "two")))
我正在使用 Spark 版本 2.4.7-amzn-1 和 Scala 版本 2.11.12(OpenJDK 64 位服务器虚拟机,Java 1.8.0_302)开发 AWS EMR。 我想通过键减少
我正在将 spark 与 scala 一起使用,并且我有一个充满 tuple2 的 RDD,其中包含一个复杂对象作为键和一个 double 对象。如果对象相同,则目的是添加双倍(频率)。 为此,我将我
在对一些稀疏向量进行聚类后,我需要在每个聚类中找到相交向量。为此,我尝试减少 MLlib 向量,如下例所示: import org.apache.spark.SparkConf import org.
最近我有一个场景将数据存储在 keyValue Pair 中,并遇到了一个函数 reduceByKey(_ ++ _) .这更多是速记语法。我无法理解这实际上意味着什么。 例如:reduceBykey
作为我学习过程的一部分,我正在研究现有的 Spark 代码,我遇到了以下代码: enPages.map(lambda x: x.split(" "))\ .map(lambda x:
除了 RDDs 之外,我正在尝试学习更多地使用 DataFrames 和 DataSets。对于 RDD,我知道我可以做 someRDD.reduceByKey((x,y) => x + y) ,但我
我是一名优秀的程序员,十分优秀!