广播变量
- 广播变量有个要求,广播变量是只读的,分区中只能获取广播变量的值,无法更改广播变量的值
- 优势:节省了磁盘io,数据量越大,效果越明显
- 使用:直接通过广播变量的.value函数获取广播变量的值
- 案例
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() } }
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/16623548.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?