緩存數(shù)據(jù)
我們都知道一些計算中間的數(shù)據(jù)集可以進行緩存,緩存到內(nèi)存中明顯要比磁盤中速度要快,Spark SQL可以通過調(diào)用spark.catalog.cacheTable(“tableName”)或者df.cache()來使用內(nèi)存緩存表,然后spark會只掃描需要的列并自動壓縮來減少內(nèi)存和GC使用,可以調(diào)用spark.catalog.uncacheTable(“tableName”)從內(nèi)存中刪除該表。
1.1 緩存中的配置如下:
spark.sql.inMemoryColumnarStorage.compressedd(默認值為true),設置為true時spark sql會默認的為數(shù)據(jù)選擇壓縮方式。
Spark.sql.inMemoryColumnarStorage.batchSize(默認值為10000),意思是可以為列緩存設置最大批大小,設置的大可以提高內(nèi)存利用率和壓縮,但是也有可能導致內(nèi)存溢出。
1.2 緩存中的配置可以通過創(chuàng)建sparkSession時候進行配置,使用方法如下:
SQL查詢配置選項
數(shù)據(jù)傾斜
SQL查詢?nèi)蝿諘r數(shù)據(jù)傾斜會嚴重影響查詢速度,數(shù)據(jù)傾斜就是某個分區(qū)數(shù)據(jù)嚴重大于其他分區(qū)數(shù)據(jù),整個任務執(zhí)行速度是以執(zhí)行最慢的分區(qū)決定,從一開始我們就應該避免數(shù)據(jù)傾斜的情況產(chǎn)生,如果真的產(chǎn)生了,可以通過將發(fā)生數(shù)據(jù)傾斜的任務拆分成多個任務。
前提是先進行如下配置:
這樣spark會動態(tài)的將傾斜任務進行拆分。
如果一個分區(qū)數(shù)據(jù)大于spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes(默認為256M)且大于spark.sql.adaptive.skewJoin.skewedPartitionFactor(因子默認是5)×中位值分區(qū)大小,那么就認為該分區(qū)產(chǎn)生了數(shù)據(jù)傾斜。
總 結
在實際使用中,如果遇到需要多次使用的數(shù)據(jù)集,為了提高效率,我們可以將這些中間數(shù)據(jù)集緩存到內(nèi)存中。
如果數(shù)據(jù)量比較大的時候我們可以根據(jù)實際情況進行相應的一些優(yōu)化項的設置,數(shù)據(jù)傾斜非常影響數(shù)據(jù)的查詢速度,最好的辦法就是避免數(shù)據(jù)傾斜的產(chǎn)生,這就需要我們指定合理的分區(qū)策略,如果真產(chǎn)生了數(shù)據(jù)傾斜我們可以通過上面的方法進行適當?shù)膬?yōu)化。
end
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129644.html
摘要:過程中,各個節(jié)點上的相同都會先寫入本地磁盤文件中,然后其他節(jié)點需要通過網(wǎng)絡傳輸拉取各個節(jié)點上的磁盤文件中的相同。因此在過程中,可能會發(fā)生大量的磁盤文件讀寫的操作,以及數(shù)據(jù)的網(wǎng)絡傳輸操作。Spark系列面試題 Spark面試題(一) Spark面試題(二) Spark面試題(三) Spark面試題(四) Spark面試題(五)——數(shù)據(jù)傾斜調(diào)優(yōu) Spark面試題(...
摘要:編輯大咖說閱讀字數(shù)用時分鐘內(nèi)容摘要對于真正企業(yè)級應用,需要分布式數(shù)據(jù)庫具備什么樣的能力相比等分布式數(shù)據(jù)庫,他們條最佳性能優(yōu)化性能優(yōu)化索引與優(yōu)化關于索引與優(yōu)化的基礎知識匯總。 mysql 數(shù)據(jù)庫開發(fā)常見問題及優(yōu)化 這篇文章從庫表設計,慢 SQL 問題和誤操作、程序 bug 時怎么辦這三個問題展開。 一個小時學會 MySQL 數(shù)據(jù)庫 看到了一篇適合新手的 MySQL 入門教程,希望對想學 ...
摘要:編輯大咖說閱讀字數(shù)用時分鐘內(nèi)容摘要對于真正企業(yè)級應用,需要分布式數(shù)據(jù)庫具備什么樣的能力相比等分布式數(shù)據(jù)庫,他們條最佳性能優(yōu)化性能優(yōu)化索引與優(yōu)化關于索引與優(yōu)化的基礎知識匯總。 mysql 數(shù)據(jù)庫開發(fā)常見問題及優(yōu)化 這篇文章從庫表設計,慢 SQL 問題和誤操作、程序 bug 時怎么辦這三個問題展開。 一個小時學會 MySQL 數(shù)據(jù)庫 看到了一篇適合新手的 MySQL 入門教程,希望對想學 ...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1904·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20