使用 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')
我已经根据查询构建了一个 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')