开发者社区> 问答> 正文

Spark提供的两种共享变量是什么?

Spark提供的两种共享变量是什么?

展开
收起
游客ahv54x37wvm7u 2021-12-12 21:29:02 629 0
1 条回答
写回答
取消 提交回答
  • Spark 程序的大部分操作都是 RDD 操作,通过传入函数给 RDD 操作函数来计算,这些函数在不同的节点上并发执行,内部的变量有不同的作用域,不能相互访问,有些情况下不太方便。

    广播变量,是一个只读对象,在所有节点上都有一份缓存,创建方法是 SparkContext.broadcast()。创建之后再更新它的值是没有意义的,一般用 val 来修改定义。 计数器,只能增加,可以用计数或求和,支持自定义类型。创建方法是 SparkContext.accumulator(V, name)。只有 Driver 程序可以读这个计算器的变量,RDD 操作中读取计数器变量是无意义的。但节点可以对该计算器进行增加(???) 以上两种类型都是 Spark 的共享变量。

    2021-12-12 21:29:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载