美文网首页
spark广播变量

spark广播变量

作者: 达微 | 来源:发表于2019-09-27 17:39 被阅读0次

广播变量的好处:
如果你的算子函数中,使用到了特别大的数据,那么,这个时候,推荐将该数据进行广播。这样的话,就不至于将一个大数据拷贝到每一个task上去。而是给每个节点拷贝一份,然后节点上的task共享该数据。这样的话,就可以减少大数据在节点上的内存消耗。并且可以减少数据到节点的网络传输消耗。

以下是官网翻译:
广播变量允许程序员在每台机器上保留一个只读变量,而不是随副本一起发送它的副本。例如,它们可用于以有效的方式为每个节点提供大输入数据集的副本。Spark还尝试使用有效的广播算法来分发广播变量,以降低通信成本。

Spark动作通过一组阶段执行,由分布式“shuffle”操作分隔。Spark自动广播每个阶段中任务所需的公共数据。以这种方式广播的数据以序列化形式缓存并在运行每个任务之前反序列化。这意味着显式创建广播变量仅在跨多个阶段的任务需要相同数据或以反序列化形式缓存数据很重要时才有用。

广播变量是v通过调用从变量创建的SparkContext.broadcast(v)。广播变量是一个包装器v,可以通过调用该value 方法来访问它的值。下面的代码显示了这个:

scala> val broadcastVar = sc.broadcast(Array(1,2,3))

broadcastVar: org.apache.spark.brocast.Broadcast[Array[Int]] = Broadcast(0)

scala> broadcastVar.value

res0:Array[Int] = Array(1,2,3)

创建广播变量后,应该使用它来代替v群集上运行的任何函数中的值,这样v就不会多次传送到节点。此外,在v广播之后不应修改对象 ,以确保所有节点获得相同的广播变量值(例如,如果稍后将变量发送到新节点)。

相关文章

  • Spark-broadcast

    参见Spark相关--共享变量-广播变量-broadcast

  • spark广播变量

  • Spark广播变量

    原文链接

  • Spark—广播变量

    广播变量 Spark有两种共享变量——累加器、广播变量。广播变量可以让程序高效地向所有工作节点发送一个较大的只读值...

  • spark广播变量

    广播变量的好处:如果你的算子函数中,使用到了特别大的数据,那么,这个时候,推荐将该数据进行广播。这样的话,就不至于...

  • Spark的广播变量机制

    Spark广播变量 什么是广播变量? 在同一个Execute共享同一份计算逻辑的变量 广播变量使用场景 我现在要在...

  • spark使用广播变量

  • Spark 之广播变量

    1. Background Spark 中有两种共享变量,其中一个是累加器,另一个是广播变量。前者解决了 Spar...

  • Spark广播变量应用

    一、广播变量 1、广播变量的优点 不需要每个task带上一份变量副本,而是变成每个节点的executor存一份副本...

  • Spark之广播变量

    什么是广播变量 广播变量:分布式共享只读变量。广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,...

网友评论

      本文标题:spark广播变量

      本文链接:https://www.haomeiwen.com/subject/jheauctx.html