嗨,團隊,
我們試圖讀取多個微小的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
如我所知,沒有任何選項來優化你的代碼。https://github.com/databricks/spark-xml
這是正確的和唯一的方法用於讀取xml,所以磚,沒有多少可以做除了實驗與其他集群配置。
讀取多個小文件總是緩慢。因此,它是常見的一個問題稱為“小文件的問題”。
我不知道你的架構,但也許當xml保存,文件可以添加到前一個(或一些觸發可能合並它們)。
如我所知,沒有任何選項來優化你的代碼。https://github.com/databricks/spark-xml
這是正確的和唯一的方法用於讀取xml,所以磚,沒有多少可以做除了實驗與其他集群配置。
讀取多個小文件總是緩慢。因此,它是常見的一個問題稱為“小文件的問題”。
我不知道你的架構,但也許當xml保存,文件可以添加到前一個(或一些觸發可能合並它們)。