使用Scala Spark在同一csv文件中追加新表

使用Scala Spark在同一csv文件中追加新表,scala,apache-spark,Scala,Apache Spark,我想将表metrics附加到现有CSV文件中。我使用以下代码: metrics.coalesce(1) .write .option("header", "true") .option("sep",",") .mode("Append") .csv("data/outputs.csv}") 每次运行下面的代码块时,都会在data

我想将表
metrics
附加到现有CSV文件中。我使用以下代码:

    metrics.coalesce(1)
    .write
    .option("header", "true")
    .option("sep",",")
    .mode("Append")
    .csv("data/outputs.csv}")
每次运行下面的代码块时,都会在data/outputs.csv(其中outputs.csv是文件夹而不是csv文件)中创建一个新文件
.part-00000-{xxxxxx-xxxxx……}.csv

是否有任何方法可以始终将表附加到同一个CSV文件中,而不创建新的.CSV文件?还有什么方法来定义这个CSV的最终名称,而不是使用
.part-00000-{xxxxxx-xxxxx……}.CSV
格式


我尝试使用保存模式附加选项(
.mode(SaveMode.append)
),但复制结果相同。

您必须显式地合并它们,然后使用
覆盖而不是附加。
大概是这样的:

spark
  .read
  .option(...)
  .csv("data/outputs.csv")
  .union(metrics)
  .coalesce(1)
  .write
  .option(...)
  .mode("Overwrite")
  .csv("data/outputs.csv")

由于spark的分布式特性,没有直接的方法可以做到这一点,但您可以在使用spark保存后再这样做。请参阅此链接以获取引用:。我认为你不应该这样做,除非你有一个用例没有解决方法。