spark的計算器與廣播變數
一.計算器
1.官網
2.解釋
計數器只支援加,計算器字task裡面
3.測試
4.結果截圖WEBUI
4.應用場景
資料很多有的資料掛了,做資料質量監控用
二.廣播變數
1.官網
2.join程式碼
def commonJoin(sc:SparkContext): Unit = {
val peopleInfo = sc.parallelize(Array(("G301","糊塗蟲"),("G302","森老"),("G303","Gordon"))).map(x=>(x._1, x))
val peopleDetail = sc.parallelize(Array(("G301","清華大學",18))).map(x=>(x._1,x))
// TODO... 大表關聯小表 join key from a join b on a.id=b.id
peopleInfo.join(peopleDetail).map(x=>{x._1 + "," + x._2._1._2 + "," + x._2._2._2+ "," + x._2._2._3})
}
3.結果WEBUI
4.廣播變數使用前提
廣播變數的前提條件是資料量少,一大一小,不能超過記憶體
資料量大小還要看記憶體,你記憶體夠大就可以放
廣播變數放到記憶體中
5.廣播變數的join程式碼
def broadcastJoin(sc:SparkContext): Unit = {
val peopleInfo = sc.parallelize(Array(("G301","糊塗蟲"),("G302","森老"),("G303","Gordon"))).collectAsMap()
val peopleDetail = sc.parallelize(Array(("G301","清華大學",18))).map(x=>(x._1, x))
// 通過sc將變數廣播出去
val peopleBroadcast = sc.broadcast(peopleInfo)
// mappartition: 取出表中的一條記錄和廣播變數中的對比
peopleDetail.mapPartitions(x=>{
val map = peopleBroadcast.value // 是不是就是記憶體的東西
for((key,value)<-x if (map.contains(key)))
yield (key,map.get(key).getOrElse(""), value._2)
}).foreach(println)
}
6.WEBUI結果
7.兩個join對比
廣播變數的沒有了shuffer
有前提資料量不可以多
把小表廣播到記憶體中,大表每個資料與其對比
有就要,沒有就不要。
廣播變數與join結合工作中常用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69941978/viewspace-2651740/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark開發-廣播變數Spark變數
- Spark2 broadcast廣播變數SparkAST變數
- spark:自定義分割槽,自定義排序,spark與jdbc,廣播變數等Spark排序JDBC變數
- 共享變數、廣播變數,累計器的工作原理圖。變數
- 【Spark篇】---Spark中廣播變數和累加器Spark變數
- 【大資料開發】SparkCore——利用廣播變數優化ip地址統計、Spark2.x自定義累加器大資料Spark變數優化
- 廣播接收器——接收系統廣播
- 如何計算網路地址和廣播地址
- 子網掩碼、網路地址、廣播地址的計算
- 廣播與 EventBus 的區別
- 使用廣播星曆計算衛星座標(Python)Python
- ROS 機器人技術 - 廣播與接收 TF 座標ROS機器人
- Spark 外部變數和BroadCast變數的區別Spark變數AST
- 組播和廣播的區別
- 單播、多播(組播)和廣播的區別
- 手機中的計算攝影:超廣角畸變校正
- 廣播模式模式
- 小學校園IP網路廣播-基於校園區域網的小學IP數字廣播系統設計
- Android開機廣播和關機廣播Android
- 小區廣播背景音樂IP網路廣播系統方案設計概要
- 系列TCP/IP協議-廣播與多播(010)TCP協議
- 子網掩碼與廣播地址 (轉)
- Java 基於UDP 實現單播、組播、廣播 Socket 程式設計JavaUDP程式設計
- 中學校園IP網路廣播系統解決方案-校園數字IP廣播系統方案設計指南
- iOS下的UDP廣播iOSUDP
- 原始碼級別的廣播與監聽實現原始碼
- Udp廣播的傳送與接收(C#+UdpClient) 上篇UDPC#client
- IP&IP地址、ipv4&ipv6、子網掩碼、網段計算、網路廣播ID計算、預設閘道器、DNS伺服器、DHCP伺服器DNS伺服器
- RocketMQ系列(五)廣播與延遲訊息MQ
- Spark計算過程分析Spark
- Spark運算元:統計RDD分割槽中的元素及數量Spark
- 計算機器與智慧計算機
- Android中的廣播使用Android
- 3Vision:調查疫情加快了廣播公司的數字遷移計劃
- Android-Broadcast Receiver(廣播接收器)AndroidAST
- 安卓開發之廣播接收器BroadcastReceiver安卓AST
- 廣播丟資料
- 廣播基礎使用