Spark-三大数据结构之-广播变量
生活随笔
收集整理的這篇文章主要介紹了
Spark-三大数据结构之-广播变量
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
什么是廣播變量
分布式只讀共享變量
首先廣播變量是一個調(diào)優(yōu)策略(可以減少數(shù)據(jù)的傳輸,也就是數(shù)據(jù)從driver傳輸?shù)絜xecutor)
(每一個executor都要傳list數(shù)據(jù),如果數(shù)據(jù)太多就很慢,采用廣播變量他是一個共享只讀變量,可以減少數(shù)據(jù)傳輸種量)
下面代碼演示的是,不使用能進行shuffle的算子,來減少網(wǎng)絡(luò)傳輸,用自定義邏輯實現(xiàn)
def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("Mysql").setMaster("local[*]")//創(chuàng)建上下文對象val sc = new SparkContext(conf)val rdd1 = sc.makeRDD(List((1,2),(1,2),(2,3)))val list = List((1,2),(2,3),(3,3))//可以使用廣播變量(減少數(shù)據(jù)的傳輸)(每一個executor都要傳list數(shù)據(jù),如果數(shù)據(jù)太多就很慢,采//用廣播變量他是一個共享只讀變量,可以減少數(shù)據(jù)傳輸種量)//構(gòu)建廣播變量val broadcast = sc.broadcast(list)val resultRDD = rdd1.map({case (key,value) =>{var v2:Any = null//使用廣播變量for(t <- broadcast.value){if (key == t._2){v2 = t._2}}(key,(value,v2))}})resultRDD.foreach(println)}總結(jié)
以上是生活随笔為你收集整理的Spark-三大数据结构之-广播变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比贾跃亭FF 91还科幻 高合HiPHi
- 下一篇: java数据结构 - 单链表(腾讯面试题