我使用磚自動裝卸機從ADLS gen2增量加載JSON文件目錄清單模式。所有源文件的時間戳。自動裝卸機工作完美的幾天與下麵的配置和休息第二天以下錯誤。
org.apache.spark。SparkException:工作階段失敗而終止:任務1階段7.0失敗了4次,最近的失敗:在舞台上失去了任務1.3 7.0 (TID 24)(10.150.38.137執行人0):. lang。IllegalArgumentException: java.net.URISyntaxException:相對路徑在絕對URI: 2022 - 04 - 27 t20:09:00(附完整的錯誤消息)
我刪除了檢查站,目標三角洲表和加載新的選項“cloudFiles.includeExistingFiles”:“真正的”。所有文件加載成功之後的增量加載相同的錯誤發生。
自動裝卸機配置
{“cloudFiles.format”:“json”、“cloudFiles。useNotifications”:“假”、“cloudFiles。inferColumnTypes”:“真正的”、“cloudFiles。schemaEvolutionMode”:“addNewColumns”、“cloudFiles.includeExistingFiles”:“false”}
路徑位置通過如下
raw_data_location: dbfs: / mnt / DEV-cdl-raw /數據/ storage-xxxxx / xxxx /
target_delta_table_location: dbfs: / mnt / DEV-cdl-bronze /數據/ storage-xxxxx / xxxx /
checkpoint_location: dbfs: / mnt / DEV-cdl-bronze /配置/自動裝卸機/ storage-xxxxx / xxxx /檢查站
schema_location: dbfs: / mnt / DEV-cdl-bronze / / storage-xxxxx / xxxx /元數據
StreamingQuery = StreamDF。writeStream \
.option (“checkpointLocation”, checkpoint_location) \
.option (“mergeSchema”,“真正的”)\
.queryName (f”AutoLoad_RawtoBronze_ {sourceFolderName} _ {sourceEntityName}”) \
.trigger (availableNow =真正的)\
.partitionBy targetPartitionByCol \
.start (target_delta_table_location)
有人能幫我嗎?
提前謝謝。
我沒有改變模式。模式是固定在我的情況下。
你好,每個人。我們提出一個支持與磚的票。這是我收到的響應,以及一個臨時解決方案。我希望它是有用的對於那些讀過。
問題陳述:
org.apache.spark。SparkException:工作階段失敗而終止:任務1階段7.0失敗了4次,最近的失敗:在舞台上失去了任務1.3 7.0 (TID 24)(10.150.38.137執行人0):. lang。IllegalArgumentException: java.net.URISyntaxException:相對路徑在絕對URI: 2022 - 04 - 27 t20:09:00(附完整的錯誤消息)
根本原因分析:
我們有一個清單模式增量加速上市不掃描前綴我們之前看到的,但增量清單模式不喜歡文件名與某些特殊字符,例如:
如果你上傳一個文件有特殊字符到DBFS文件被重命名並自動取而代之的是_
這是目前我們的路線圖,但沒有一個確切的埃塔。
解決方案:
使用下麵的配置來緩解這個問題
cloudFiles.useIncrementalListingto false.
大家好!
我看到這個問題——相同的配置之前的帖子,用自動裝卸機增量文件清單。但奇怪的是,它大多工作盡管幾乎所有的文件我們已經裝載冒號作為時間戳的一部分。
現在似乎更頻繁地發生,這是成為一個問題。不得不很少明確一個檢查點是非常不同於每天需要明確的檢查點。我也不舒服清理檢查點以編程方式。我很幸運在我們的例子中,我有一些級別的控製文件的命名,所以刪除時間戳的冒號是一種可能性。
包括幾個要點在這裏任何人盡管這掙紮。
我還沒試過設置cloudFiles.useIncrementalListing假,但這也感覺不完美的解決我的目的。我將密切關注更新在這麵,也謝謝大家之前已經共享信息。