PROBLÈME: Je souhaite enregistrer dans des compartiments AWS S3 à partir du cluster d'Amazon sans avoir à authentifier ou à utiliser des bibliothèques. Fondamentalement, je veux enregistrer des données à partir d'un programme s'exécutant sur les clusters Amazon dans un compartiment S3. Je cours quelques programmes Python3 dans le cluster EMR Amazon Web Service (AWS) et j'essaie d'enregistrer des fichiers dans un dossier dans un compartiment AWS S3, et si ce dossier n'existe pas, je veux le créer.Enregistrement d'un fichier sur Amazon Web Service s3
La façon dont je sauvegarde le fichier est quelque chose comme ci-dessous. J'ai essayé la méthode with
et cela ne fonctionne pas non plus.
output = open("s3://mybucket/myfile.txt", "w+")
output.write("hello world\n")
Pour une raison quelconque, l'enregistrement d'une RDD comme part-xxxxx
fichiers à un seau S3 fonctionne en utilisant la méthode de RDD Spark sans fournir l'authentification:
rdd.saveAsTextFile("s3://mybucket/")
Est-ce que le travail saveAsTextFile()
sans authentification ou faut-il authentifie en quelque sorte en arrière-plan?
Si elle ne nécessite pas d'authentification pour enregistrer des fichiers sur des seaux S3 de grappes d'Amazon, est-il un moyen de le faire en utilisant la méthode open
de Python sans nécessiter l'authentification comme la façon dont saveAsTextFile()
méthode RDD il fait?
s3n (système de fichiers s3 natif) est maintenant obsolète, à sa place s3a doit être utilisé. Dans Spark 2.0, les propriétés suivantes doivent être configurées pour utiliser s3a 1. fs.s3a.access.key 2. fs.s3a.secret.key 3. org.apache.hadoop.fs.s3a.S3AFileSystem –