簡體   English   中英

將S3安裝到數據塊

[英]mount S3 to databricks

我正在嘗試了解mount工作原理。 我有一個名為myB的S3存儲桶,其中有一個名為test的文件夾。 我使用了

var AwsBucketName = "myB"
val MountName = "myB"

我的問題是:它是否在S3 myB和databricks之間創建鏈接,並且databricks是否可以訪問所有文件,包括test文件夾下的文件? (或者,如果我使用var AwsBucketName = "myB/test"進行掛載,是否僅將數據磚鏈接到該文件夾test ,而不鏈接該文件夾之外的任何其他文件?)

如果是這樣,我怎么說在test文件夾中列出文件,讀取該文件或在scala中讀取或計數(csv文件)? 我做了一個display(dbutils.fs.ls("/mnt/myB")) ,它只顯示測試文件夾,而不顯示其中的文件。 這里很新。 非常感謝您的幫助!

從Databricks文檔中:

// Replace with your values
val AccessKey = "YOUR_ACCESS_KEY"
// Encode the Secret Key as that can contain "/"
val SecretKey = "YOUR_SECRET_KEY".replace("/", "%2F")
val AwsBucketName = "MY_BUCKET"
val MountName = "MOUNT_NAME"

dbutils.fs.mount(s"s3a://$AccessKey:$SecretKey@$AwsBucketName", s"/mnt/$MountName")
display(dbutils.fs.ls(s"/mnt/$MountName"))

如果在安裝目錄中看不到文件,則可能是在/ mnt下創建了一個目錄,該目錄不是s3存儲桶的鏈接。 如果是這種情況,請嘗試刪除目錄(dbfs.fs.rm)並使用上述代碼示例重新安裝。 請注意,您將需要您的AWS憑證(上面的AccessKey和SecretKey)。 如果您不認識他們,則需要向您的AWS賬戶管理員詢問。

它僅列出存儲桶正下方的文件夾和文件。

在S3中

<bucket-name>/<Files & Folders>

在Databricks中

/mnt/<MOUNT-NAME>/<Bucket-Data-List>

就像下面一樣( dbutils.fs.ls(s"/mnt/$MountName")

dbfs:/mnt/<MOUNT-NAME>/Folder/  
dbfs:/mnt/<MOUNT-NAME>/file1.csv
dbfs:/mnt/<MOUNT-NAME>/file2.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM