使用 python 和“|”将 spark 数据帧写入文件分隔符
Posted
技术标签:
【中文标题】使用 python 和“|”将 spark 数据帧写入文件分隔符【英文标题】:Write spark dataframe to file using python and '|' delimiter 【发布时间】:2017-01-26 12:17:11 【问题描述】:我已经从查询构造了一个 Spark 数据框。我想要做的是将数据框打印到一个文本文件中,所有信息都由“|”分隔,如下所示:
+-------+----+----+----+
|Summary|col1|col2|col3|
+-------+----+----+----+
|row1 |1 |14 |17 |
|row2 |3 |12 |2343|
+-------+----+----+----+
我该怎么做?
【问题讨论】:
【参考方案1】:您可以尝试写入 csv,选择 | 的分隔符
df.write.option("sep","|").option("header","true").csv(filename)
这不会 100% 相同,但会很接近。
或者,您也可以收集给司机并自己做,例如:
myprint(df.collect())
或
myprint(df.take(100))
df.collect 和 df.take 返回行列表。
最后你可以使用topandas收集到驱动程序并使用pandas工具
【讨论】:
【参考方案2】:在 Spark 2.0+ 中,您可以使用内置的 CSV 写入器。这里delimiter
默认为,
,你可以设置为|
df.write \
.format('csv') \
.options(delimiter='|') \
.save('target/location')
【讨论】:
以上是关于使用 python 和“|”将 spark 数据帧写入文件分隔符的主要内容,如果未能解决你的问题,请参考以下文章
Databricks:如何将 %python 下的 Spark 数据帧转换为 %r 下的数据帧
将 Python UDF 应用于 Spark 数据帧时出现 java.lang.IllegalArgumentException