Dataframe 如何使用spark scala将数据帧写入具有sheetname的csv文件

Dataframe 如何使用spark scala将数据帧写入具有sheetname的csv文件,dataframe,apache-spark,apache-spark-sql,Dataframe,Apache Spark,Apache Spark Sql,我正在尝试使用选项sheetName将数据框写入csv文件,但它对我不起作用 df13.coalesce(1).write.option("delimiter",",").mode(SaveMode.Overwrite).option("sheetName","Info").option("header","true").option("escape","").option("quote","").csv("path") 有人能帮我一下吗?我认为在CSV文件中实际上没有工作表名称,理想情况下,

我正在尝试使用选项sheetName将数据框写入csv文件,但它对我不起作用

df13.coalesce(1).write.option("delimiter",",").mode(SaveMode.Overwrite).option("sheetName","Info").option("header","true").option("escape","").option("quote","").csv("path")

有人能帮我一下吗?

我认为在CSV文件中实际上没有工作表名称,理想情况下,文件名是CSV文件中的工作表名称。您能否尝试更改为excel并尝试..

Spark在以
csv
格式编写时无法直接执行此操作,没有
sheetName
选项,输出路径是您提到的.csv(“路径”)路径

Spark使用hadoops文件格式,在输出路径下的多个部分文件中进行分区,在您的案例中为1个部分文件。也不要将分区重新分配到1,除非您确实需要它

您可以做的一件事是在不重新分区的情况下编写数据帧,并使用HADOOP API将这些小的多部分文件合并为单个文件。

这里有更多详细信息

如果我们想要多张图纸,我们只能在csv文件中使用一张默认图纸,那么我们应该将数据框写入excel格式而不是csv文件格式。

您所说的
图纸名称是什么意思
?在csv文件中,我们有不同的图纸权利。假设我有3个数据框,我想用正确的SheetName将每个数据框写入不同的表中。我们如何做到这一点。我们如何使用excel和书写。您能研究一下吗?我正在使用spark shell运行spark命令。我已尝试使用此命令添加程序包,但在运行--package命令时设置此错误的spark shell--packages com.crealytics:spark-excel_2.11:0.13.1失败。线程“main”java.lang.RuntimeException中出现异常:[未解析的依赖项:com.crealytics#spark-excel_2.11;0.13.1:未找到]使用以下命令将多帧写入1个excel文件,但在不同的工作表中,但我在写入不同的工作表文件时遇到错误。coalesce(1).write.format(“com.crealytics.spark.excel”).option(“dataAddress”,“Second”!B1:M300”).option(“useHeader”,“false”).save(s“${desPath}/${snapshotDate}/BIS.xlsx”)df7.coalesce(1).write.format(“com.crealytics.spark.excel”).option(“dataAddress”,“First”!B1:M300”).option(“useHeader”,“false”).false”).save(s“${desPath}/${snapshotDate}/我已经检查了这个链接,但我使用S3作为数据存储,我不介意使用重新分区或合并,因为我的数据非常小。但我无法在1个csv文件中将3个数据帧写入3个不同的工作表。我没有使用hdfs路径。我的问题是如何更改csv文件中的工作表名称,并将3个数据帧写入1个csv文件中的3个不同工作表。如果您不想了解spark的工作原理,spark csv选项中没有这样的工作表名称,如果你有非常小的数据大小,我认为你应该考虑使用SARKE的其他解决方案。如果你没有我的问题的ANS。写多个数据文件到1 Excel文件,但在不同的表使用下面的命令,但得到错误。错误:线程“main”java.lang.RuntimeException中的异常:路径/BIS.xlsx已存在。DataFrame1:df7.coalesce(1).write.format(“com.crealytics.spark.excel”).option(“dataAddress”,“Second”!B1:M300”).option(“useHeader”,“false”).save(s“${desPath}/${snapshotDate}/BIS.xlsx”)DataFrame2:df7.coalesce(1).write.format(“com.crealytics.spark.excel”).option(“dataAddress”,“First”!B1:M300”).option(“useHeader”,“false”).false”).save(s)${desPath}/${snapshotDate}/BIS.xlsx”)