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

的幫助!將廣州JSON轉換為三角洲造成巨大的CPU峰值和ETL的天!

卡什
貢獻者三世

你好,

我想知道如果我能得到你的建議。

我們想創建一個青銅三角洲表使用廣州JSON數據存儲在S3中但每次我們嚐試讀和寫它集群CPU峰值100%。我們沒有做任何轉換,隻是閱讀從S3,創建一個列as_of_date和寫作在三角洲S3。

目前需要超過1小時讀和寫20 gb的廣州JSON S3使用服務器122 gb的內存和16個核心是無效的。

當我們做ETL數據也在小文件6.7 mb-10mb寫道。

我們已經試過的東西:

  1. 我最初認為這個問題是由於我們的廣州JSON數據,不是可剝離所以火花很難處理這個問題,但我們沒有與其他管道。(如果這是它還不清楚)
  2. 然後我認為這是一個傾斜的問題由於.withColumn (“as_of_date坳(metadata.timestamp) .cast(日期))但即使我刪除它的問題仍然持續。
  3. 我甚至嚐試添加一個鹽提示,但沒有運氣。
  4. 我們試圖定義JSON,因為它是嵌套的模式幫助它加載更快了,但是寫了同樣長的時間。(這是不理想的,因為我們的模式隨時間變化和定義在這裏使我們失去數據)
  5. 我們嚐試.repartition (1000)
  6. 我們也試圖讓數據磚動態選擇傾斜是什麼,然後,以編程方式設置為斜提示,但沒有運氣。
  7. 我們打開Autocompact,自動優化它寫大文件但沒有做到這一點,再一次寫較小的10 mb的文件。

source_path = (s3: / /測試數據/源/ 2022/06/03 / *’。形式at(year, month, day)) test_data = spark.read.json(source_path).withColumn("as_of_date", col('metadata.timestamp').cast('date')) test_data.createOrReplaceTempView('test_data') test_data.write.format('delta') \ .partitionBy('as_of_date') \ .option("mergeSchema", "true") \ .option("path",'s3://test-data-bronze/').mode("append") \ .saveAsTable('test_data.bronze')

19日回複19

卡什
貢獻者三世

@Sara Dooley任何想法嗎?

杜利
價值貢獻

是的,自動裝卸機寫較小的文件,然後當你檢查站將緊湊一些文件到更大的文件你的查詢和處理會更有效率。你必須設置這些標誌開始的檢查點緊湊數據到大文件。這是必要的,你的餘生管道的有效數據。

我回答你的問題嗎?

卡什
貢獻者三世

你好,

謝謝你回到我。

我的問題是關於回填和加載曆史數據逐步使用自動裝卸機(一天)。

我想上運行自動裝卸機數據分區的年/月/日。我想自動裝卸機讀數據增量,然後寫它逐步防止CPU過載和其他內存問題。

今天當我運行自動裝卸機使用上麵的設置中,我看到的SparkUI它試圖將整個1 tb s3 bucket加載到內存而不是閱讀每天(增量)。

我有回填設置錯誤還是我丟失的東西可以自動裝卸機先回填日常嗎?

謝謝,

Avkash

杜利
價值貢獻

你運行這個最新仍然運行在單個節點上嗎?

你有2 TB的S3 bucket你要輸入數據磚做處理的數據,然後任何新的數據,最終在S3 bucket嗎?

卡什
貢獻者三世

是的,沒錯。我們有自動裝卸機回填設置正確嗎?

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

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

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

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

Baidu
map