spark join資料偏移優化

2021-10-19 14:41:16 字數 576 閱讀 9987

首先強烈推薦該篇文章《寫的非常仔細。

持續優化中

背景:我在實踐過程中遇到了 20億資料 join 300w資料的情況。同時我的資料中主key分布並不均勻,存在大key。

結果:執行過程種有幾個task執行非常緩慢,拖慢了整體的執行速度。

對比: 直接join:用時40分鐘。

優化:實踐了上述文章中:解決方案七-使用隨機字首和擴容rdd進行join。 優化後join的時間為15分鐘。提公升不少。

問題:隨機數的範圍 對結果效能有重要影響。我的小表擴容30倍效能比擴容10倍差,我在想可能是因為小表擴容30倍後已經成為大表了。具體效能差異還得對比。

小表膨脹:一行資料複製變為n行

table.withcolumn(config.subscatterkey,getsubkeylist(col(config.subscatterkey),lit(config.subkeyrange))) .withcolumn(config.subscatterkey,explode(col(config.subscatterkey)) )

資料由1行擴張為range*tablecount

hdfs計算向資料偏移思想

核心 主要是實現資料的分治思想,主機優先和自己距離最近的datanode獲取資料,通過seek 偏移量 實現。如 當檔案分為兩個資料塊block1和bloack2.時,且兩台伺服器1和2均可呼叫block2中的資料,若伺服器1就具有自己所需讀取的block2時,則就近呼叫。不再通過伺服器2去讀取 測...

mysql limit分頁(偏移量)過大時優化問題

先說一下limit分頁語法 select from user address limit 100000,10 limit後跟兩個引數,第乙個引數為從第幾個資料開始,第二個引數為取多少個資料。第乙個引數也叫偏移量,初始值是0 如果資料量很小,這麼寫分頁當然沒問題,但是當資料量大起來的時候,查詢速度就會...

ACCESS資料庫偏移注入

偏移注入主要是針對知道表,但是不知道欄位的access資料庫。比如我們已經知道了表名是 admin 判斷字段數 order by 22 返回正常 order by 23 返回錯誤 欄位數為 22 爆出顯示位 判斷表內存在的字段數 union select 1,2,3,4,5,6,7,8,9,10,1...