我正在尝试使用.NET SPARK将数据框导出到CSV文件,但是我的导出文件具有默认名称“part-00000- {GUID}”,我想要的是根据我的业务规则来操作文件名,例如:'ABC_20200504.csv'。
这是我的代码:
string pathSource = Path.Combine(path, folderName);
exportDataFrame
.Coalesce(1)
.Write()
.Option("header", "false")
.Mode(SaveMode.Append)
.Csv(pathSource);
我试图操纵pathSource,强制将其导出到“test.csv”中,但是使用这种方法,我总是得到一个具有该名称的目录,并且该文件将位于“test.csv”文件夹中。
我真的需要一些解决方案,如果有人可以提供帮助,我将非常感激。
最佳答案
试试这个代码:
exportDataFrame
.Repartition(1)
.Write()
.Mode("overwrite")
.Format("com.databricks.spark.csv")
.Option("header", "true")
.Save("ABC_20200504.csv");
它必须将单个文件输出创建为\ ABC_20200504.csv \ part-00000
然后,您可以按照以下示例中的方式重命名文件part-0000:
System.IO.File.Move("D:\\part-00000.txt", "D:\\ABC_20200504.txt");
原始解决方案使用
Scala
编写,可从下面的链接中获取并针对C#
进行编辑:https://www.dataneb.com/post/how-to-write-single-csv-file-using-spark链接描述了5种方法来写入单个
CSV
-file。
关于.net - 有没有办法使用.NET SPARK更改导出文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61594783/