Comment le nom de fichier lors de l'saveAsTextFile spark?
Lors de l'enregistrement en tant que fichier texte dans spark version 1.5.1-je utiliser: rdd.saveAsTextFile('<drectory>')
.
Mais si je veux trouver le fichier dans ce répertoire, comment puis-je nom de ce que je veux?
Actuellement, je pense qu'il est nommé part-00000
, qui doit être par défaut. Comment puis-je lui donner un nom?
Ceci est la documentation que j'ai trouvé: spark.apache.org/docs/1.1.1/api/python/... Pouvez-vous suggérer une autre source?
Quelle est la version de spark utilisez-vous?
voir mise à jour de question
Vous êtes à la lecture de la documentation obsolète, cependant, le nouveau doc peut être trouvé ici Spark 1.5.2 du saveAsTextFile Note: Il n'y a pas de différence dans ce domaine entre les versions 1.5.1 et 1.5.2.
Quelle est la version de spark utilisez-vous?
voir mise à jour de question
Vous êtes à la lecture de la documentation obsolète, cependant, le nouveau doc peut être trouvé ici Spark 1.5.2 du saveAsTextFile Note: Il n'y a pas de différence dans ce domaine entre les versions 1.5.1 et 1.5.2.
OriginalL'auteur Hunle | 2015-11-11
Vous devez vous connecter pour publier un commentaire.
Comme je l'ai dit dans mon commentaire ci-dessus, la documentation avec des exemples peuvent être trouvés ici. Et de citer la description de la méthode
saveAsTextFile
:Dans l'exemple suivant j'ai enregistrer un simple RDD dans un fichier, puis-je le charger et d'imprimer son contenu.
La sortie sera
Jetons un coup d'oeil à l'aide d'un Unix terminal.
OriginalL'auteur Alberto Bonsanto
La bonne réponse à cette question est que
saveAsTextFile
ne vous permet pas de nom du fichier réel.La raison pour cela est que les données sont partitionnées et dans le chemin donné en paramètre à l'appel à
saveAsTextFile(...)
, il va la traiter comme un répertoire, puis d'écrire un fichier par partition.Vous pouvez appeler
rdd.coalesce(1).saveAsTextFile('/some/path/somewhere')
et il va créer/some/path/somewhere/part-0000.txt
.Si vous avez besoin de plus de contrôle que cela, vous aurez besoin de faire une véritable opération de fichier sur votre fin d'après-vous faire un
rdd.collect()
.Avis, cela va rassembler toutes les données dans un seul exécuteur testamentaire de sorte que vous risquez de rencontrer des problèmes de mémoire. C'est le risque que vous prenez.
OriginalL'auteur nod
Il n'est pas possible de nommer le fichier comme @ndd. Cependant, il est possible de renommer le fichier de droit par la suite. Un exemple d'utilisation de PySpark:
OriginalL'auteur Juan Riaza