快取Apache Spark RDD - 效能調優
有時您需要多次處理RDD,而不是一次操作。這帶來了一個主要問題...... Spark 確實總是會在磁碟上找到資料。但是你需要處理效能問題。
RDD帶有cache()和persist()方法,其中
cache() = persist(StorageLevel.MEMORY_ONLY).將幫助我們將RDD儲存到記憶體中,詳細瞭解其他選項。
讓我們用簡單的例子來測試它:
import org.apache.spark.storage.StorageLevel._; val fileRDD = sc.textFile("/tests/yahoo_stocks.csv"); fileRDD.persist(MEMORY_ONLY); System.out.println("Count of RDD (first run): "+fileRDD.count()); System.out.println("Count of RDD (second run): "+fileRDD.count()); |
(download the yahoo_stocks.csv from https://github.com/dmatrix/examples/blob/master/spark/hdp/data/yahoo_stocks.csv)
現在讓我告訴你發生了什麼:
如果沒有持久化(MEMORY_ONLY)呼叫,首先呼叫fileRDD.count()將觸發從磁碟獲取資料和計數行。fileRDD.count()的第二次命中意味著同樣的事情。
透過持久(MEMORY_ONLY)呼叫,我們告訴Spark:
做懶載入:
- 讀取檔案
- 將RDD快取到記憶體中
現在第二次呼叫fileRDD.count()應該比第一次呼叫快得多,因為它不會使用磁碟作為計算內容的源(當然,如果RDD適合記憶體)
讓我們證明一下(執行):
park-shell -i test14.scala |
第一次 |
18/02/17 22:21:10 INFO DAGScheduler: Job 0 finished: count at <console>:33, took 1,425495 s Count of RDD (first run): 4794 |
第二次 fileRDD.count() 執行輸出
18/02/17 22:21:11 INFO DAGScheduler: Job 1 finished: count at <console>:33, took 0,121783 s Count of RDD (second run): 4794 |
看看第二個RDD動作的巨大加速。
相關文章
- Spark(十三) Spark效能調優之RDD持久化Spark持久化
- Spark RDD詳解 | RDD特性、lineage、快取、checkpoint、依賴關係Spark快取
- Spark效能調優-RDD運算元調優篇(深度好文,面試常問,建議收藏)Spark面試
- Spark 效能調優--資源調優Spark
- SparkSQL /DataFrame /Spark RDD誰快?SparkSQL
- Spark效能優化:對RDD持久化或CheckPoint操作Spark優化持久化
- RDD的快取快取
- Spark學習——效能調優(一)Spark
- Spark學習——效能調優(二)Spark
- Spark學習——效能調優(三)Spark
- spark效能調優指南高階篇Spark
- Spark 效能調優--開發階段Spark
- 系統效能調優:提升 CPU 快取的命中率快取
- Spark效能調優——9項基本原則Spark
- spark-RDDSpark
- Spark RDD APISparkAPI
- Spark - [03] RDD概述Spark
- Spark shuffle調優Spark
- Spark效能優化Spark優化
- spark RDD,reduceByKey vs groupByKeySpark
- Spark 的核心概念 RDDSpark
- 前端效能優化之快取技術前端優化快取
- 前端效能優化之HTTP快取策略前端優化HTTP快取
- spark調優-背壓Spark
- spark效能優化(一)Spark優化
- 調優 | Apache Hudi應用調優指南Apache
- Spark效能最佳化篇三:資料傾斜調優Spark
- Spark RDD 特徵及其依賴Spark特徵
- spark學習筆記--RDDSpark筆記
- Spark RDD中Runtime流程解析Spark
- Apache Spark:資料框,資料集和RDD之間的區別 - BaeldungApacheSpark
- 前端效能優化 之 瀏覽器快取前端優化瀏覽器快取
- HTTP前端效能優化(壓縮與快取)HTTP前端優化快取
- Web 效能優化:理解及使用 JavaScript 快取Web優化JavaScript快取
- Apache 調優進階Apache
- 1,Spark引數調優Spark
- Spark RDD的預設分割槽數:(spark 2.1.0)Spark
- Spark RDD在Spark中的地位和作用如何?Spark