.net - 有没有办法使用.NET SPARK更改导出文件名?

标签 .net apache-spark hadoop .net-spark

我正在尝试使用.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/

相关文章:

c# - Onenote开发

json - 通过 Spark SQL 读取嵌套的 JSON - [AnalysisException] 无法解析列

c# - int.MinValue 和 int.MaxValue 之间的随机数,包括

.net - 如何使用WebDav来匹配dav :href to Outolook Interop href value

apache-spark - Spark 累加器,我总是得到 0 值

apache-spark - 从 Spark 保存时出现 Parque 错误

hadoop - 单片ETL到分布式/可扩展解决方案,OLAP立方体到Elasticsearch/Solr

java - 尝试使用 Hive streaming api 建立连接时,hive 暂存目录的权限被拒绝

处理带括号的文件时 Hadoop 出错

.net - GC 移动对象时 Object.GetHashCode 是如何工作的?