我在用https://github.com/databricks/spark-csv,我试图编写一个 CSV,但无法,它正在创建一个文件夹。
需要一个 Scala 函数,它将接受路径和文件名等参数并写入该 CSV 文件。
它正在创建一个包含多个文件的文件夹,因为每个分区都是单独保存的。如果您需要单个输出文件(仍在文件夹中),您可以repartition
(如果上游数据很大,但需要洗牌,则首选):
df
.repartition(1)
.write.format("com.databricks.spark.csv")
.option("header", "true")
.save("mydata.csv")
or coalesce
:
df
.coalesce(1)
.write.format("com.databricks.spark.csv")
.option("header", "true")
.save("mydata.csv")
保存前的数据框:
所有数据将被写入mydata.csv/part-00000
。使用此选项之前确保您了解正在发生的情况以及将所有数据传输到单个工作人员的成本是多少。如果您使用具有复制功能的分布式文件系统,数据将被多次传输 - 首先获取到单个工作线程,然后分布到存储节点上。
或者,您可以保留代码不变并使用通用工具,例如cat
or HDFS getmerge之后简单地合并所有部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)