使用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保存后再这样做。请参阅此链接以获取引用:。我认为你不应该这样做,除非你有一个用例没有解决方法。