取消
顯示的結果
而不是尋找
你的意思是:

pyspark優化和最佳實踐

KVNARK
尊敬的貢獻者二世

我們可以實現最大達到最好的優化和這些都是使用PySpark的最佳實踐。

1接受解決方案

接受的解決方案

daniel_sahal
尊敬的貢獻者三世
2回答2

ajaypanday6781
尊敬的貢獻者二世

下麵列出了最受歡迎的火花優化技術:

1。數據序列化

在這裏,一個內存中的對象轉換為另一種格式可以存儲在一個文件或通過網絡發送。這提高了分布式應用程序的性能。

  1. 它是最好的火花優化技術。序列化改善任何分布式應用程序的性能。默認情況下,火花在JVM使用Java序列化器平台。Beplay体育安卓版本火花也可以使用序列化器稱為Kryo而不是Java序列化器。Kryo序列化器提供了更好的性能比Java序列化器。

2。緩存

這是一種有效的技術,需要更多數據時使用。緩存()和持續()方法應用於這種技術。這些方法用於存儲計算抽樣的數據集,DataFrame。但是,緩存()將其存儲在內存和堅持()將其存儲在用戶定義的存儲水平。

這些方法可以幫助降低成本和節約時間,重複計算。

緩存和持續的方法這將數據集存儲到內存當需求出現。他們是有用的,當你想要存儲一個小數據集的程序中經常使用。RDD.Cache()總是會將數據存儲在內存中。RDD.Persist()允許部分數據存儲到內存和磁盤上的部分。緩存技術提供了有效的優化在火花持續和緩存方法。

3所示。數據結構優化

我們可以減少內存消耗,同時使用火花,通過調整某些Java特性可能會增加開銷。這是可能在以下方麵:

  • 使用枚舉對象的字符串或數字id鍵。
  • 避免使用大量的對象和複雜的嵌套結構。
  • JVM標誌設置為xx: + UseCompressedOops如果小於32 GB的內存大小。

4所示。垃圾收集優化

為優化垃圾收集器,G1和GC必須用於火花運行應用程序。G1收集器管理日益增長的堆。根據生成的日誌GC調優是至關重要的,來控製應用程序的意想不到的行為。但在這之前,您需要修改和優化程序的邏輯和代碼。

G1GC有助於減少執行時間的工作通過優化流程之間的暫停時間。

這是一個最好的優化技術在火花時,有一個巨大的垃圾收集。

5。內存管理

用於存儲的內存計算,如連接,打亂排序、聚合,叫做執行內存。用於存儲內存緩存和處理數據存儲在集群。記憶都使用一個統一的地區。

當執行內存使用,存儲內存可以使用空間。同樣的,當存儲內存空閑,執行內存可以利用的空間。這是其中一個最有效的優化技術。

daniel_sahal
尊敬的貢獻者三世

@KVNARK。

這個視頻很酷。

https://www.youtube.com/watch?v=daXEp4HmS-E

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map