使用python和'|'将spark数据帧写入文件 分隔符

Bri*_*ers 7 python apache-spark pyspark pyspark-sql

我从查询中构造了一个Spark数据帧.我想要做的是将数据框打印到一个文本文件,其中所有信息都以"|"分隔,如下所示:

+-------+----+----+----+
|Summary|col1|col2|col3|
+-------+----+----+----+
|row1   |1   |14  |17  |
|row2   |3   |12  |2343|
+-------+----+----+----+
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Ass*_*son 11

您可以尝试写入选择|的分隔符的csv

df.write.option("sep","|").option("header","true").csv(filename)
Run Code Online (Sandbox Code Playgroud)

这不会是100%相同但会接近.

或者你可以收集给司机并自己动手,例如:

myprint(df.collect())
Run Code Online (Sandbox Code Playgroud)

要么

myprint(df.take(100))
Run Code Online (Sandbox Code Playgroud)

df.collect和df.take返回行列表.

最后,您可以使用topandas收集驱动程序并使用pandas工具


mrs*_*vas 5

Spark 2.0+ 中,您可以使用内置的 CSV 编写器。这delimiter,默认情况下,您可以将其设置为|

df.write \
    .format('csv') \
    .options(delimiter='|') \
    .save('target/location')
Run Code Online (Sandbox Code Playgroud)