web-dev-qa-db-fra.com

Écrivez spark dataframe dans un fichier en utilisant python et délimiteur '|')

J'ai construit un Spark dataframe à partir d'une requête. Ce que je veux faire est d'imprimer le dataframe dans un fichier texte avec toutes les informations délimitées par '|', comme ceci:

+-------+----+----+----+
|Summary|col1|col2|col3|
+-------+----+----+----+
|row1   |1   |14  |17  |
|row2   |3   |12  |2343|
+-------+----+----+----+

Comment puis-je faire ceci?

7
Brian Waters

Vous pouvez essayer d'écrire dans csv en choisissant un délimiteur de |

df.write.option("sep","|").option("header","true").csv(filename)

Ce ne serait pas 100% le même mais ce serait proche.

Sinon, vous pouvez récupérer auprès du chauffeur et le faire vous-même, par exemple:

myprint(df.collect())

ou

myprint(df.take(100))

df.collect et df.take renvoient une liste de lignes.

Enfin, vous pouvez récupérer le pilote en utilisant topandas et utiliser pandas tools

12
Assaf Mendelson

Dans Spark 2.0 +, vous pouvez utiliser un écrivain CSV intégré. Ici delimiter est , par défaut et vous pouvez le régler sur |

df.write \
    .format('csv') \
    .options(delimiter='|') \
    .save('target/location')
4
mrsrinivas