广播变量

  1. 广播变量有个要求,广播变量是只读的,分区中只能获取广播变量的值,无法更改广播变量的值
  2. 优势:节省了磁盘io,数据量越大,效果越明显
  3. 使用:直接通过广播变量的.value函数获取广播变量的值
  4. 案例
package videovar
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object VideoVar {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[2]").setAppName("sum")
val sc = new SparkContext(sparkConf)
val rdd: RDD[Int] = sc.makeRDD(1 to 100)
var num = 3;
val broadcast = sc.broadcast(num)
val filter1: RDD[Int] = rdd.filter((num: Int) => {
if (num % broadcast.value == 0) {
true
} else {
false
}
})
val filter2: RDD[Int] = rdd.filter((num: Int) => {
if (num % (broadcast.value*broadcast.value) == 0) {
true
} else {
false
}
})
val str1: String = filter1.collect().mkString(",")
val str2: String = filter2.collect().mkString(",")
println(str1)
println(str2)
sc.stop()
}
}
posted @   jsqup  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示