【发布时间】:2017-11-10 11:00:47
【问题描述】:
我正在使用广播变量来加入 Spark 中的操作。但是我遇到了关于从驱动程序加载到执行程序的时间广播的问题。所以我只想加载一次,但用于多作业(范围应用周期)。
【问题讨论】:
标签: apache-spark
我正在使用广播变量来加入 Spark 中的操作。但是我遇到了关于从驱动程序加载到执行程序的时间广播的问题。所以我只想加载一次,但用于多作业(范围应用周期)。
【问题讨论】:
标签: apache-spark
广播变量与工作无关,但与会话/上下文有关。如果您重用相同的SparkSession,则可能会重用广播变量。如果我没记错的话,在某些类型的内存压力下,worker 可能会清除广播变量,但如果它被引用,它将自动重新广播以满足引用。
【讨论】:
广播变量,可用于在所有节点的内存中缓存一个值。广播变量允许程序员在每台机器上缓存一个只读变量,而不是随任务一起发送它的副本。例如,它们可用于以有效的方式为每个节点提供大型输入数据集的副本。
EdhBroadcast 广播 = 新 EdhBroadcast(JavaSparkContext);
【讨论】:
不可能使用广播变量向每个工作人员发送一次不可变状态。当你想要一个变量的本地副本时,你可以使用它们。
您可以创建rdd并缓存rdd并重用。
【讨论】: