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

優雅dbutils掛載/卸載

dchokkadi1_5588
新的貢獻者二世

有辦法dbutils.fs表示。山不拋出一個錯誤如果山已經安裝?

反之亦然,卸載不拋出一個錯誤如果它已經卸載?

我試圖運行我的筆記本工作,它有一個初始化部分,坐騎S3 bucket。有時,坐騎已經由早期的腳本。

因為安裝已經安裝的安裝(哇)拋出一個錯誤我的工作退出。

1接受解決方案

接受的解決方案

Bill_Chambers
因素二世

@Deepak Chokkadi

這是我使用的功能:

def mountBucket (dstBucketName:字符串,dstMountName:字符串){導入. lang。IllegalArgumentException val accessKey =“你的訪問密鑰”val encodedSecretKey =“你的秘密”。替換(“/”、“% 2 f”) {dbutils.fs試試。山(s”s3a: / / $ accessKey: encodedSecretKey@ dstBucketName”美元,dstMountName) println(“都做!”)}{案例e: java.rmi。RemoteException = > {println(“目錄”已經安裝)dbutils.fs.unmount (dstMountName) mountBucket (dstBucketName dstMountName)}案例e:異常= > {println(“有其他一些錯誤”)}}}

我把它放在一個簡單的可訪問的筆記本,然後筆記本使用%跑。然後一桶山我使用這個函數,它會自動重新安裝它。

在原帖子查看解決方案

8回答說8

Bill_Chambers
因素二世

@Deepak Chokkadi

這是我使用的功能:

def mountBucket (dstBucketName:字符串,dstMountName:字符串){導入. lang。IllegalArgumentException val accessKey =“你的訪問密鑰”val encodedSecretKey =“你的秘密”。替換(“/”、“% 2 f”) {dbutils.fs試試。山(s”s3a: / / $ accessKey: encodedSecretKey@ dstBucketName”美元,dstMountName) println(“都做!”)}{案例e: java.rmi。RemoteException = > {println(“目錄”已經安裝)dbutils.fs.unmount (dstMountName) mountBucket (dstBucketName dstMountName)}案例e:異常= > {println(“有其他一些錯誤”)}}}

我把它放在一個簡單的可訪問的筆記本,然後筆記本使用%跑。然後一桶山我使用這個函數,它會自動重新安裝它。

DonatienTessier
新的貢獻者三世

站在我這一邊,我測試了如果在安裝之前存在的掛載點:

如果(! dbutils.fs.mounts。地圖(mnt = > mnt.mountPoint) .contains (“/ mnt / <目錄>”))dbutils.fs。山(源= "誹謗聯盟:/ / < datalake_name >.azuredatalakestore.net/ <目錄>”,掛載點= s / mnt / <目錄>”,extraConfigs =配置)

非常好!這是一個等價的if語句在Python中:

如果任何(山。掛載點= =“/ mnt / <目錄>”在dbutils.fs.mounts山()):

Rodneyjoyce
新的貢獻者三世

對於python不?

如果沒有任何(山。掛載點= =掛載點的山dbutils.fs.mounts ()):

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

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

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

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

Baidu
map