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

Write spark dataframe to file using python and '|' delimiter

我已经根据查询构建了一个 Spark 数据框。我想做的是将数据框打印到一个文本文件中,所有信息都以“|”分隔,如下所示:

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

我该怎么做?

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

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

这不会是 100% 相同,但会很接近。

或者您可以收集到 driver 并自己完成,例如:

myprint(df.collect())

myprint(df.take(100))

df.collect 和 df.take return 行列表。

最后,您可以使用 pandas 收集到 driver 并使用 pandas 工具

Spark 2.0+中,您可以使用in-built CSV writer。这里的delimiter默认是,,你可以设置成|

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