Есть ли способ изменить имя файла экспорта, используя. NET SPARK? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь экспортировать Dataframe в файл CSV, используя. NET SPARK, но мой файл экспорта имеет имя по умолчанию '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'.

Мне действительно нужно какое-то решение для этого, если кто-то может помочь, я был бы очень благодарен.

1 Ответ

0 голосов
/ 05 мая 2020

Попробуйте этот код:

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 -файл.

...