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

有辦法使用通配符表達式內部dbutils功能

拉瑪
新的貢獻者三世

我在遷移項目遷移HDFS命令處決我做在我的Python代碼通過os.system()函數,代之以dbutils功能。

dbutils函數是按預期工作如果我通過一個文件的完全限定路徑但不是工作當我試圖通過外卡。

當前項目有多個HDFS命令(cp、rm、mv等)與通配符表達式。

目前,我看到兩個方麵,一,來減輕這個問題清單的所有對象作為一個列表,然後應用過濾器列表,然後遍曆列表和完成操作,但這不是一個有效的方式相比,和兩個批量複製/移動/刪除命令,通過使用boto3跑龍套做此操作。

有一種磚做的批量複製/移動/刪除文件從一個S3文件夾到另一個S3文件夾使用通配符表達式?

下麵是示例命令:

hdfs dfs - cp - f s3a: / / <桶> / folder1 / some_prefix *。csv s3a: / / <桶> / folder2 /

hdfs dfs mv - f s3a: / / <桶> / folder1 / some_prefix *。csv s3a: / / <桶> / folder2 /

hdfs dfs rm - r -skipTrash s3a: / / <桶> / folder1 / some_prefix * . csv

以下是例外我在了dbutils.fs.ls ():

dbutils.fs.ls ( “s3a: / / <桶> / folder1 / some_prefix * . csv” )——> . io .FileNotFoundException:沒有這樣的文件或目錄
dbutils.fs.ls (“s3a: / / <桶> / folder1 / some_prefix \ \ . csv”)——> java . util . concurrent。ExecutionException: com.databricks.sql.managedcatalog.acl。UnauthorizedAccessException: PERMISSION_DENIED:
如果我執行dbutils.fs.ls (“s3a: / / <桶> / folder1 /”),那麼沒有問題。
我覺得不支持通配符表達式dbutils功能但我希望看到如果有人已經有這個問題,什麼樣的最佳替代人們用來緩解這個問題。
謝謝
拉瑪

4回複4

赫曼特
重視貢獻二世

@Ramana,如果你創建掛載點磚S3 bucket的它將幫助你利用的功能水珠和操作係統python模塊。

假設你的掛載點是“/ mnt / s3”,隻改變成/ dbfs / mnt / s3和使用水珠和操作係統模塊。

截圖2023-07-15 111805. png

希望這將對你有所幫助。

謝謝,

赫曼特索尼

拉瑪
新的貢獻者三世

問題不是關於訪問S3磚,但內部使用通配符表達式過濾和組(散裝)文件操作。

供參考:我們有一個安裝S3以及外部S3和我們想做這些操作在外部S3的位置。

Vidula_Khanna
主持人
主持人

@Ramana

希望一切都好!隻是想檢查如果你能解決你的問題,你會很高興分享解決方案或答案標記為最佳?其他的請讓我們知道如果你需要更多的幫助。

我們很想聽到你的聲音。

謝謝!

拉瑪
新的貢獻者三世

選擇你認為隻是一個替代boto3 API相關但不是通配符選擇我需要的。

即使我做S3丘,我仍無法在磚做通配符操作。

選擇我是dbutils.fs boto3或捕獲。ls作為一個列表,然後遍曆,並做必要的操作。但這些都不是dbutils的一部分。我覺得dbutils隻支持的操作在一個文件在一個文件夾級別或水平。我的要求是複製/刪除/移動多個文件過濾(批量操作)的前綴和後綴,目前,我無法做到與dbutils磚。

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

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

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

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

Baidu
map