Enregistrer le contenu de Spark DataFrame en tant que fichier CSV unique

Dire que j'ai une Étincelle DataFrame qui je veux enregistrer en tant que fichier CSV. Après Étincelle 2.0.0 , DataFrameWriter classe prend en charge l'enregistrement en tant que fichier CSV.

Le comportement par défaut est d'enregistrer la sortie dans plusieurs partie-*.csv les fichiers dans le chemin d'accès fourni.

Comment puis-je enregistrer un DF avec :

  1. Chemin de la cartographie pour le nom exact du fichier au lieu de dossier de
  2. En-tête disponible en première ligne
  3. Enregistrer en tant que fichier unique au lieu de plusieurs fichiers.

Un moyen de traiter avec elle, est d'unir les DF et puis enregistrez le fichier.

df.coalesce(1).write.option("header", "true").csv("sample_file.csv")

Cependant, cela a le désavantage de collecte en Maître de la machine et doit avoir un maître avec suffisamment de mémoire.

Est-il possible de n'écrire qu'un seul fichier CSV sans l'aide de fusionnent ? Si non, est-il un moyen efficace que le code ci-dessus ?

source d'informationauteur Spandan Brahmbhatt | 2017-01-31