數據倉庫項目筆記2

業務需求:
1 清洗過濾: 去除不必要的字段和無效數據
2 數據解析: 解析數據爲扁平格式
3 數據集成: 根據經緯度添加省市縣信息
4 數據存儲: 存儲爲parquet格式
所用技術:
spark
json解析
廣播變量
所學:
shuffle : 一批數據需要分配到不同地方纔能完成任務
spark運行機制: rdd的遇到action算子, 開始彙總rdd 從最後一個rdd往前推, 是否與前一個rdd有shuffle
則切分stage, 一個stage(一段邏輯)中有多個邏輯相同task組成taskset 最後輸出數據的task叫resultTask 其他叫shuffleTask stage類似

mapPartitions和map的區別
mapPartitions 一個分區使用一個函數來處理
map 一條數據使用一個函數來處理

dataset和dataset[row]區別
dataset是強類型 data[row]是弱類型 存儲全部類型
類似java中類和map關係, jsonobject 和 jsonobject得到自定義類關係

廣播變量:
一個executor使用一個廣播變量, 基於序列化分隔發送到不同executor,然後每個executor下載其他executor中的序列化部分, 然後反序列化共這個executor中的所有task使用, 並實現端join
兩個rdd join(copartition 不需要shuffle) 需要經過shuffle 是reduce端join 可造成數據傾斜
task數量和分區數量相同(分區由block塊決定)
task 包含mapreduce中maptask和reducetask 即做任務分配又做shuffle數據準備或者做shuffle的拉取和做shuffle數據準備
sparksql 默認shuffle 200個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章