2017-05-18 4 views
1

J'essaie de comprendre comment fonctionne mount. J'ai un seau S3 nommé myB, et un dossier en lui appelé test. Je l'ai fait un montage à l'aidemonter S3 à databricks

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

Ma question est la suivante: faut-il créer un lien entre S3 myB et databricks, et serait databricks accéder à tous les fichiers incluent les fichiers sous le dossier test? (Ou si je fais un montage à l'aide var AwsBucketName = "myB/test" t-il le seul lien databricks dans ce dossier test mais pas anyother fichiers en dehors de ce dossier?)

Si oui, comment puis-je dire la liste des fichiers dans le dossier test, lisez ce fichier ou ou count() un fichier csv dans scala? J'ai fait un display(dbutils.fs.ls("/mnt/myB")) et il montre seulement le dossier de test mais pas de fichiers dedans. Tout nouveau ici. Merci beaucoup pour votre aide!

Répondre

1

De la documentation 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:[email protected]$AwsBucketName", s"/mnt/$MountName") 
display(dbutils.fs.ls(s"/mnt/$MountName")) 

Si vous ne parvenez pas à voir les fichiers dans votre répertoire monté, il est possible que vous avez créé un répertoire sous/mnt qui n'est pas un lien vers le seau s3. Si c'est le cas, essayez de supprimer le répertoire (dbfs.fs.rm) et de le remonter en utilisant l'exemple de code ci-dessus. Notez que vous aurez besoin de vos informations d'identification AWS (AccessKey et SecretKey ci-dessus). Si vous ne les connaissez pas, vous devrez vous renseigner auprès de votre administrateur de compte AWS.