可以每个节点apache火花缓存



我知道火花可以缓存并持续每个分区。如果我想创建每个节点的缓存以避免网络流量,那是否可能吗?

像所有处理的所有客户ID都是有效的,请参考完整性检查!。

是的,您可以使用广播变量在每个节点上缓存数据。广播变量允许程序员在每台机器上保持一个仅读取的变量,而不是将其副本运送到任务上。例如,可以使用它们以有效的方式为每个节点提供大型输入数据集的副本。Spark还尝试使用有效的广播算法来降低通信成本来分发广播变量。

broadcastVar = sc.broadcast([1, 2, 3])

可以通过调用值方法

来访问广播变量的值

来源:Spark编程指南

如果要根据分区来缓存数据,则应使用缓存功能,它将保存在本地称为RDD的输出,并将有关RDD的相关信息发送到mater节点。

最新更新