Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法使用.NET SPARK更改导出文件名?_.net_Apache Spark_Hadoop_.net Spark - Fatal编程技术网

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

有没有办法使用.NET SPARK更改导出文件名?,.net,apache-spark,hadoop,.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()

我正在尝试使用.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);
我试图操纵路径源,强制导出到“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进行了编辑:
该链接介绍了如何写入单个CSV文件的5种方法

将您的代码以文本的形式放入问题中,并在编辑器中使用一个特殊的按钮。不要在源代码中使用图像。发布前请查看问题预览。在这里,您的图像甚至没有显示在您的问题中。@VadimS。我刚刚编辑过,谢谢你的评论。你能看一下吗?文本格式不是问题,我想将数据框导出到csv。我一直在这样做,我的问题是编辑文件名,因为spark总是自己创建名称。谢谢你的评论,但这是python的问题,对吗?对于C.net核心框架,我没有这种导入。你知道.NET的解决方案吗?谢谢。你能试试下面的代码并告诉我你有什么结果吗?此注释中的代码最初是用Scala编写的,并针对.NET进行了更改。我现在没有一个环境来检查.NET,所以我假设它可能会有帮助。代码取自这里:exportDataFrame.coalesc1.Write.Formatcom.dataricks.spark.csv.Optionheader,true.SaveABC_20200504.csvSame result,它创建了一个包含-00000-{GUID}.csv部分文件的文件夹mydata.csv。我认为唯一的解决方案是选择使用该类型名称生成的所有文件,并根据我的业务规则更改它们的名称。这是我正在开发的方法。请尝试我刚刚发布的更新答案中的解决方案。它与以前的方法不同。看起来这就是我现在所能提出的所有建议。Spark和Hive不喜欢在文件级别上运行,而是更喜欢在文件夹级别上运行,并使用文件作为扩展数据块。我在Azure Synapse上运行了Vadim在.NET中为Spark编写的代码,它成功了。然后需要重命名该文件。