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

處理大數據集的最佳方式是什麼?

Chris_Shehu
重視貢獻三世

我試圖找到最好的策略來處理大數據集。在這種情況下我有4.5億條記錄。我把數據從SQL Server很快但是當我試圖推動三角洲的數據表或Azure容器計算資源鎖起來,從來沒有完成。一個小時後,我最終取消流程。查看日誌看起來計算資源不斷襲擊內存問題。

1接受解決方案

接受的解決方案

Hubert_Dudek1
尊敬的貢獻者三世
  • 尋找數據傾斜;一些分區可以很大,一些小的,因為不正確的分區。您可以使用火花UI,但也調試代碼有點(get getNumPartitions())特別sql可以不均勻地劃分分區(有設置conenctor下界等)。你可以試著分區作為工人的內核數乘以X(所以他們將一步一步處理隊列),
  • 增加調整大小spark.sql.shuffle.partitions默認是200大,你應該計算數據大小除以分區的大小,
  • 提高司機的大小是2倍執行人(但是得到最佳大小請分析負載——在磚集群選項卡上的指標有Ganglia甚至更好地整合datadog集群),
  • 檢查寬轉換,那些需要洗牌數據在分區之間,小組一起做一個洗牌,
  • 如果你需要過濾的數據如果可能的話做它後讀取sql將表語推這將增加在sql查詢,
  • 確保一切運行在分布式的方式,特別是udf,您需要使用矢量化熊貓udf將運行在執行人。不要使用收集等。
  • 關於基礎設施使用更多的工人和檢查你的ADLS連接通過私人聯係。監控進度保存在文件夾中。您還可以使用溢價ADLS更快。
  • 有時我處理大數據流更容易與大數據集,在這種情況下你需要卡夫卡(可以彙合的雲)SQL和磚之間

在原帖子查看解決方案

5回複5

Atanu
尊敬的貢獻者
尊敬的貢獻者

@Christopher Shehu如果你看到集群內存限製,你可以嚐試增加集群大小。

其他重要的事情需要考慮:

  • 避免內存密集型操作,比如:
  • 收集()
    • 運營商,給司機帶來了大量的數據。
    • 轉換的一個大型DataFrame熊貓

請在這裏找到更多的細節

https://kb.www.eheci.com/jobs/driver-unavailable.html

你也可以考慮讀這篇文章

https://docs.microsoft.com/en-us/azure/databricks/kb/jobs/job-fails-maxresultsize-exception

Hubert_Dudek1
尊敬的貢獻者三世
  • 尋找數據傾斜;一些分區可以很大,一些小的,因為不正確的分區。您可以使用火花UI,但也調試代碼有點(get getNumPartitions())特別sql可以不均勻地劃分分區(有設置conenctor下界等)。你可以試著分區作為工人的內核數乘以X(所以他們將一步一步處理隊列),
  • 增加調整大小spark.sql.shuffle.partitions默認是200大,你應該計算數據大小除以分區的大小,
  • 提高司機的大小是2倍執行人(但是得到最佳大小請分析負載——在磚集群選項卡上的指標有Ganglia甚至更好地整合datadog集群),
  • 檢查寬轉換,那些需要洗牌數據在分區之間,小組一起做一個洗牌,
  • 如果你需要過濾的數據如果可能的話做它後讀取sql將表語推這將增加在sql查詢,
  • 確保一切運行在分布式的方式,特別是udf,您需要使用矢量化熊貓udf將運行在執行人。不要使用收集等。
  • 關於基礎設施使用更多的工人和檢查你的ADLS連接通過私人聯係。監控進度保存在文件夾中。您還可以使用溢價ADLS更快。
  • 有時我處理大數據流更容易與大數據集,在這種情況下你需要卡夫卡(可以彙合的雲)SQL和磚之間

這是有用的我想我需要仔細審視的過程,看看需要做什麼。Azure磚文檔缺乏pyspark分區。

匿名
不適用

珍惜你的數據。“保持你的原始數據原始:不要操縱它沒有複製,”蒂爾說。可視化信息。顯示您的工作流。使用版本控製。元數據記錄。自動化、自動化、自動化。使計算時間計算。獲取您的環境。

LiveTheOrangeLife.com

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

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

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

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

Baidu
map