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

如何並行讀取多個微小的XML文件

Paramesh
新的貢獻者二世

嗨,團隊,

我們試圖讀取多個微小的XML文件,可以使用數據磚XML解析它們,但是有什麼辦法可以讀取這些文件跨集群並行和分發負載?

現在我們的工作是把90%的時間來閱讀文件,隻有一個xml轉換即壓扁。

請建議如果有任何改善性能的方法。

代碼片段:

def rawXml2df(幀:列表(字符串),ss: SparkSession): DataFrame ={/ /打印(s“fanames $ {fnames.mkString (", ")}”) ss.read .format . schema (thSchema) .option (“com.databricks.spark.xml”) (“rowTag”、“ns2: TransactionHistory”) .option (“attributePrefix”、“_”) .load (fnames.mkString (", "))} val df0 = rawXml2df (getListOfFiles(新文件(“ds-tools / aws-glue-local-test / src / main / scala / tracelink / ds /輸入”)),SparkSession)日誌:2022-09-01 13:37:36信息階段2.0 - 14196.0完成任務(TID 33078)。2258字節的結果發送給司機2022-09-01 13:37:36信息-開始任務階段2.0 14197.0 (TID 33079 localhost,遺囑執行人司機,14197年分區,PROCESS_LOCAL, 8024字節)2022-09-01 13:37:36信息階段2.0 - 14196.0完成任務(TID 33078) 44女士在localhost(執行人司機)(14197/18881)2022-09-01 13:37:36信息階段2.0 - 14197.0運行的任務(TID 33079) 2022-09-01 13:37:36信息-輸入分割:文件:/用戶/約翰/ ds-tools / aws-glue-local-test / src / main / scala / ds /輸入/ 09426 edf-39e0-44d7-bda5-be49ff56512e: 0 + 2684

1接受解決方案

接受的解決方案

Hubert_Dudek1
尊敬的貢獻者三世

如我所知,沒有任何選項來優化你的代碼。https://github.com/databricks/spark-xml

這是正確的和唯一的方法用於讀取xml,所以磚,沒有多少可以做除了實驗與其他集群配置。

讀取多個小文件總是緩慢。因此,它是常見的一個問題稱為“小文件的問題”。

我不知道你的架構,但也許當xml保存,文件可以添加到前一個(或一些觸發可能合並它們)。

在原帖子查看解決方案

4回複4

Hubert_Dudek1
尊敬的貢獻者三世

如我所知,沒有任何選項來優化你的代碼。https://github.com/databricks/spark-xml

這是正確的和唯一的方法用於讀取xml,所以磚,沒有多少可以做除了實驗與其他集群配置。

讀取多個小文件總是緩慢。因此,它是常見的一個問題稱為“小文件的問題”。

我不知道你的架構,但也許當xml保存,文件可以添加到前一個(或一些觸發可能合並它們)。

Kaniz
社區經理
社區經理

嗨@Paramesh Nalla,我們一直沒有收到你最後的回應@Hubert杜德克,我檢查,看看他的建議幫助你。否則,如果你有任何解決方案,請與社區分享,因為它可以幫助別人。同時,請別忘了點擊“選擇最佳”按鈕時提供的信息幫助解決你的問題。

Paramesh
新的貢獻者二世

謝謝你的跟進。添加我的新評論

Paramesh
新的貢獻者二世

謝謝@Hubert杜德克的建議。類似於你的建議,我們增加了一個步驟在我們的管道合並小文件大文件,讓他們用於火花工作。

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

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

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

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

Baidu
map