我需要使用 databricks dbutils 洗掉具有特定名稱的 ADLS Gen2 子檔案夾,但無法執行通配符遞回。
e.g.
adlsstorageaccount/container1/folder2/folder3/folderA/**abc**/.parquet
adlsstorageaccount/container1/folder2/folder3/folderB/**abc**/.parquet
adlsstorageaccount/container1/folder2/folder3/folderC/**abc**/.parquet
只需要洗掉子檔案夾名稱“abc”及其內容,整個路徑是動態的。
uj5u.com熱心網友回復:
我們在我們的環境中復制了相同的檔案夾,這里是有效的命令。
$FileSystemName="<Your Container Name>"
$dirname="folder2/folder3/folderA/abc/"
$ctx=New-AzStorageContext -StorageAccountName '<Your Storage Account>' -StorageAccountKey '<Your Access Key>'
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
然后用 Y 確認 - 'yes'
以下是截圖供您參考
使用命令執行前

命令執行后

參考: https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-directory-file-acl-powershell#delete-a-directory
uj5u.com熱心網友回復:
你只需要在 databricks 中使用魔法命令 %sh 并使用標準的 linux 命令使用通配符將其洗掉,例如:
%sh
rm /dbfs/mnt/adlsstorageaccount/container1/folder2/folder3/folderA/*abc*/*.parquet
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/385558.html
