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

使用dbutils.fs。ls在URI方括號導致錯誤

Josh_Stafford
新的貢獻者二世

方括號ADLS被接受,所以為什麼我不能列出文件夾中的文件?我一直逃避手動方括號,然後逃值re-escaped從% 255 b和b % % % 255 d 5 d。

我得到:

URISyntaxException:非法字符在路徑指數188:abfss: / / container-name@ * * * * * * * * * /

實際的路徑替換為* * *。

2回答2

匿名
不適用

@Joshua斯塔福德:

URISyntaxException錯誤你遇到很可能因為方括號保留字符uri(統一資源標識符),需要使用時正確編碼的URL。在這種情況下,看來方括號的URI並沒有被正確編碼,導致錯誤。

為了解決這個問題,你可以嚐試手動編碼方括號使用適當的百分比編碼格式。例如,您可以取代“(”和“% 5 b”和“]”與“% 5 d”URI。然而,似乎你已經嚐試了這種方法並遇到進一步“%”的雙重編碼問題。

在這種情況下,您可以嚐試使用“從urllib()函數。在Python中解析模塊解碼URI傳遞到dbutils.fs.ls之前()。這裏有一個例子:

python

urllib。解析輸入“#例子URI編碼方括號URI = " abfss: / / container-name@ * * * % 5 b * * * % 5 d * * *”#解碼URI decoded_uri =結束(URI) #用解碼URI dbutils.fs.ls () dbutils.fs.ls (decoded_uri)

這應該正確解碼的URI,並允許您使用dbutils.fs.ls文件夾中的文件列表()沒有遇到URISyntaxException錯誤。請注意,您可能需要調整的編碼格式根據特定需求ADLS湖(Azure數據存儲)環境。

Josh_Stafford
新的貢獻者二世

嗨Suteja,這看起來可能會奏效,但是我使用Scala。有一個等效函數在scala中,可以執行這個函數?或者是源代碼的地方所以我可以翻譯嗎?

編輯:

我拿回,我試圖用這個python和它給同樣的錯誤,好像我沒有“結束”uri。[和]中被擱淺在我打印出非上市uri。

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

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

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

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

Baidu
map