Je dispose d'un fichier JSON valide:spark charger un fichier s3a en tant que df, quelle commande exécuter?
je peux réussir l'importer sur une machine d'allumage locale
DF = sqlContext.read.json("/home/me/myfile.json")
J'ai un script shell pour soumettre le travail
/home/me/spark/bin/spark-submit \
--master local[*] Code.py
Jusqu'à présent si bon, par exemple DF.show (1) fonctionne bien.
Maintenant, j'essaie de charger à partir d'un lien s3a (qui contient exactement les mêmes données que myfile.json).
J'ai essayé
DF = sqlContext.read.json("s3a://some-bucket/myfile.json")
Je lance encore mon script shell qui contient la même commande, à savoir
/home/me/spark/bin/spark-submit \
--master local[*] Code.py
Mais cette fois ça ne marche pas, je reçois l'erreur suivante
java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
Mon script shell est-il incorrect? PS: Je viens de recevoir le lien s3a de quelqu'un d'autre. Donc, ce n'est pas sur mon compte AWS. Je suppose que je peux toujours importer les données de ce lien même si je ne connais pas de clé d'accès ou de clé secrète ...
Il s'agit d'une classe ClassNotFoundException''. Avez-vous vérifié vos dépendances? –
non, comment je fais ça? – S12000
J'ai corrigé les dépendances en ajoutant à la fois haddop-aws-2.7.3.jar et aws-java-sdk-1.7.4.jar dans le fichier/spar/jars. Néanmoins, j'ai maintenant l'erreur suivante: Impossible de charger les informations d'identification AWS à partir de n'importe quel fournisseur de la chaîne – S12000