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與jdbc,廣播變數等Spark排序JDBC變數
- 共享變數、廣播變數,累計器的工作原理圖。變數
- 【大資料開發】SparkCore——利用廣播變數優化ip地址統計、Spark2.x自定義累加器大資料Spark變數優化
- 廣播接收器——接收系統廣播
- 子網掩碼、網路地址、廣播地址的計算
- 使用廣播星曆計算衛星座標(Python)Python
- Spark 外部變數和BroadCast變數的區別Spark變數AST
- 廣播與 EventBus 的區別
- 休閒遊戲的廣告變現LTV計算公式遊戲公式
- 系列TCP/IP協議-廣播與多播(010)TCP協議
- ROS 機器人技術 - 廣播與接收 TF 座標ROS機器人
- 手機中的計算攝影:超廣角畸變校正
- Spark運算元:統計RDD分割槽中的元素及數量Spark
- 實時計算框架:Spark叢集搭建與入門案例框架Spark
- 妙用編輯器:把EverEdit變成計算器
- 小學校園IP網路廣播-基於校園區域網的小學IP數字廣播系統設計
- Shell程式設計-04-Shell中變數數值計算程式設計變數
- Java 基於UDP 實現單播、組播、廣播 Socket 程式設計JavaUDP程式設計
- 小區廣播背景音樂IP網路廣播系統方案設計概要
- Android-Broadcast Receiver(廣播接收器)AndroidAST
- Spark Streaming——Spark第一代實時計算引擎Spark
- 計算int變數中攸多少bit的值是1變數
- 3Vision:調查疫情加快了廣播公司的數字遷移計劃
- 中學校園IP網路廣播系統解決方案-校園數字IP廣播系統方案設計指南
- Shell階段02 shell變數運算(整數運算/小數運算), shell變數案例變數
- 廣播模式模式
- 原始碼級別的廣播與監聽實現原始碼
- Android中的廣播使用Android
- C++ 使用者輸入與資料型別詳解:建立基本計算器及變數型別C++資料型別變數
- 如何讓CSS計數器支援小數的動態變化?CSS
- flex與bison的結合使用(計算器例子)Flex
- 用Spark進行實時流計算Spark
- RocketMQ系列(五)廣播與延遲訊息MQ
- 分散式計算技術(上):經典計算框架MapReduce、Spark 解析分散式框架Spark
- 虛擬主播也帶貨?直播電商的變與不變
- 計算機計算小數除法的陷阱計算機
- Shell程式設計規範與變數程式設計變數
- Android BroadcastReceiver(廣播)AndroidAST