Spark Broadcast Variables

這篇文章詳細的介紹了spark廣播變量,值得一看

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-broadcast.html

在此只摘錄其中的Example

Let’s start with an introductory example to check out how to use broadcast variables and build your initial understanding.

You’re going to use a static mapping of interesting projects with their websites, i.e. Map[String, String] that the tasks, i.e. closures (anonymous functions) in transformations, use.

scala> val pws = Map("Apache Spark" -> "http://spark.apache.org/", "Scala" -> "http://www.scala-lang.org/")
pws: scala.collection.immutable.Map[String,String] = Map(Apache Spark -> http://spark.apache.org/, Scala -> http://www.scala-lang.org/)

scala> val websites = sc.parallelize(Seq("Apache Spark", "Scala")).map(pws).collect
...
websites: Array[String] = Array(http://spark.apache.org/, http://www.scala-lang.org/)

It works, but is very ineffective as the pws map is sent over the wire to executors while it could have been there already. If there were more tasks that need the pws map, you could improve their performance by minimizing the number of bytes that are going to be sent over the network for task execution.

Enter broadcast variables.

val pwsB = sc.broadcast(pws)
val websites = sc.parallelize(Seq("Apache Spark", "Scala")).map(pwsB.value).collect
// websites: Array[String] = Array(http://spark.apache.org/, http://www.scala-lang.org/)

Semantically, the two computations - with and without the broadcast value - are exactly the same, but the broadcast-based one wins performance-wise when there are more executors spawned to execute many tasks that use pws map.

總結

通過這篇文章可以知道街夭,如果在driver中定義一個普通的變量,也是可以在不同的task中傳遞的领斥,只不過是通過拷貝一個副本的方式傳遞筋帖。為了提高性能通過定義廣播變量趟薄,在每個機器上只生成一個只讀變量,共享給這個機器上所有的task魄藕。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末内列,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子背率,更是在濱河造成了極大的恐慌话瞧,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件退渗,死亡現(xiàn)場離奇詭異移稳,居然都是意外死亡,警方通過查閱死者的電腦和手機会油,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門个粱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翻翩,你說我怎么就攤上這事都许〉巨保” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵胶征,是天一觀的道長塞椎。 經(jīng)常有香客問我,道長睛低,這世上最難降的妖魔是什么案狠? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮钱雷,結果婚禮上骂铁,老公的妹妹穿的比我還像新娘。我一直安慰自己罩抗,他們只是感情好拉庵,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著套蒂,像睡著了一般钞支。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上操刀,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天烁挟,我揣著相機與錄音,去河邊找鬼骨坑。 笑死信夫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的卡啰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼警没,長吁一口氣:“原來是場噩夢啊……” “哼匈辱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起杀迹,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤亡脸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后树酪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅碾,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年续语,在試婚紗的時候發(fā)現(xiàn)自己被綠了垂谢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡疮茄,死狀恐怖滥朱,靈堂內(nèi)的尸體忽然破棺而出根暑,到底是詐尸還是另有隱情,我是刑警寧澤徙邻,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布排嫌,位于F島的核電站,受9級特大地震影響缰犁,放射性物質(zhì)發(fā)生泄漏淳地。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一帅容、第九天 我趴在偏房一處隱蔽的房頂上張望颇象。 院中可真熱鬧,春花似錦丰嘉、人聲如沸夯到。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耍贾。三九已至,卻和暖如春路幸,著一層夾襖步出監(jiān)牢的瞬間荐开,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工简肴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晃听,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓砰识,卻偏偏與公主長得像能扒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辫狼,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 太極印的創(chuàng)意: 徐懷清//文 印初斑,有統(tǒng)印、率印膨处、信印之意见秤,太極印是天道與人道的自然融合,有其至高無上真椿,印證天下的妙...
    焦作太極徐閱讀 1,389評論 0 0
  • 很早就知道這部電影鹃答,而真正要看,卻也是機緣巧合突硝。 前天晚上跟同事聊天测摔,說起高中時期的事。說起當初的選擇狞换,說起如今避咆。...
    深夜芝士閱讀 275評論 0 0
  • 我對著銅鏡中自己的面龐舟肉,不由微笑。在發(fā)髻上插了一支羊脂白玉的簪子查库,我轉(zhuǎn)頭問:“好看嗎路媚?”夜里,我不由得渾身冷戰(zhàn)樊销。雖...
    DU嘟嘟閱讀 515評論 0 1
  • 你所學到的整慎,是需內(nèi)化成自己的,營養(yǎng),讓自己茁壯成長,而不是模仿別人传趾,記住慷妙,要做出自己的獨立人格箩帚,和自己的路。
    薛功燦閱讀 201評論 0 0