SparkSQL常用效能優化

2021-09-13 13:17:06 字數 1106 閱讀 1732

一、**優化

1.在資料統計的時候選擇高效能計算元。

例如dataframe使用foreachpartitions將資料寫入資料庫,不要每個record都去拿一次資料庫連線。通常寫法是每個partition拿一次資料庫連線。

/*** 將統計結果寫入mysql中

* **優化:

* 在進行資料庫操作的時候,不要每個record都去操作一次資料庫

* 通常寫法是每個partition操作一次資料庫

**/try

//執行批量處理

pstmt.executebatch()

connection.commit() //手工提交

}catch finally

3.復用已有的資料。

然後傳到三個統計方法中使用。

不要在每個統計方法都去做一次相同的過濾。

val logdf = spark.read.format("parquet")

.load("file:///f:\\mc\\sparksql\\data\\afterclean")

val day = "20170511"

statdao.deletadatabyday(day)

//清除快取

dayvideodf.unpersist(true)

二、集群儲存格式選擇

列式/行式儲存簡介

這裡建議選擇用parquet格式,之前公司中用的也是這種格式。

三、集群壓縮格式選擇

hadoop壓縮實現分析

spark中選擇用哪個方式壓縮檔案

四、引數優化

1.並行度:spark.sql.shuffle.partitions

乙個partitions相當於乙個task。這是配置當shuffle資料去join或者聚合的時候的partitions的數量。200一般情況下在生產上是不夠的,需要做相應的調整。

調整並行度的方式

bin/spark-submit --class ***.***.xx --name *** --master local[2] --conf spark.sql.shuffle.partitions=230 ***.jar

2.不必要的情況下,關閉分割槽字段型別自動推導

十六 SparkSQL常用效能優化

1.在資料統計的時候選擇高效能計算元。例如dataframe使用foreachpartitions將資料寫入資料庫,不要每個record都去拿一次資料庫連線。通常寫法是每個partition拿一次資料庫連線。將統計結果寫入mysql中 優化 在進行資料庫操作的時候,不要每個record都去操作一次資...

Spark SQL工作原理剖析和效能優化

一 工作原理剖析 spark sql 架構中主要有這幾個關鍵的元件 sqlparser sql分析程式 analyser 分析器 optimizer 優化器 sparkplan spark計畫 sparksql大致的執行流程是這樣的 1.sql 語句經過sqlparser 完成sql 語句的語法解析...

Hivesql優化 sparksql優化梳理

目錄 hive sql 優化方案梳理總結 說明 簡單最合理 對應表的hdfs檔案大小和數量問題 資料傾斜問題 where在on前面後面的問題 數倉邏輯層面的優化 group by代替count distinct 盡量不要使用in這種函式 case when函式when越多算的越慢 這個是我個人的習慣...