在內(nèi)存中緩存數(shù)據(jù)    ---> 性能調(diào)優(yōu)主要是將數(shù)據(jù)放入內(nèi)存中操作    ---> 使用例子:// 從 Oracle&..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark SQL性能優(yōu)化

發(fā)布時間:2020-07-29 19:55:13 來源:網(wǎng)絡 閱讀:10829 作者:菜鳥的征程 欄目:大數(shù)據(jù)

==> 在內(nèi)存中緩存數(shù)據(jù)

    ---> 性能調(diào)優(yōu)主要是將數(shù)據(jù)放入內(nèi)存中操作

    ---> 使用例子:

// 從 Oracle 數(shù)據(jù)庫中讀取數(shù)據(jù),生成 DataFrame
val oracleDF = spark.read.format("jdbc")
        .option("url", "jdbc:oracle:thin:@192.168.10.100:1521/orcl.example.com")
        .option("dbtable", "scott.emp")
        .option("user", "scott")
        .option("password", "tiger").load
        
// 將 DataFrame 注冊成表
oracleDF.registerTempTable("emp")

// 執(zhí)行查詢,并通過 Web Console 監(jiān)控執(zhí)行的時間
spark.sql("select * from emp").show

// 將表進行緩存,并查詢兩次,通過 Web Console 監(jiān)控執(zhí)行的時間
spark.sqlContext.cacheTable("emp")

// 清空緩存
spark.sqlContext.cacheTable("emp")
spark.sqlContext.clearCache


==> 優(yōu)化相關參數(shù)

    ---> spark.sql.inMemoryColumnarStorage.compressed

        ---- 默認值: true

        ---- Spark SQL 將會基于統(tǒng)計信息自動地為每一列選擇一種壓縮編碼方式


    ---> spark.sql.inMemoryColumnarStorage.batchSize

        ---- 默認值: 10000

        ---- 緩存批處理大小, 較大的批處理可以提高內(nèi)存利用率和壓縮率,但同時也會帶來 OOM(Out Of Memory)的風險

    ---> spark.sql.files.maxPartitionBytes

        ---- 默認值: 128M

        ---- 讀取文件時單個分區(qū)可容納的最大字節(jié)數(shù)

    ---> spark.sql.files.openCostinBytes

        ---- 默認值: 4M

        ---- 打開文件的估算成本,按照同一時間能夠掃描的字節(jié)數(shù)來測量,當往一個分區(qū)寫入多個文件時會使用,高估相對較好,這樣小文件分區(qū)將會比大文件分區(qū)速度更快(優(yōu)先調(diào)度)

    ---> spark.sql.autoBroadcastJoinThreshold

        ---- 默認值:10M

        ---- 用于配置一個表在執(zhí)行 join 操作時能夠廣播給所有 worker 節(jié)點的最大字節(jié)大小,通地將這個值設置為-1可以禁用廣播,

        ---- 注意:當前 數(shù)據(jù)統(tǒng)計僅支持已經(jīng)運行了 ANALYZE TABLE <tablename> COMPUTE STATISTICS noscan 命令的 Hive Metastore 表

    ---> spark.sql.shuffle.partitions

        ---- 默認值: 200

        ---- 用于配置 join 或聚合操作混洗(shuffle)數(shù)據(jù)時使用的分區(qū)數(shù)



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI