Scala 是否可以将DataFrame的数据添加到现有的csv文件中?

Scala 是否可以将DataFrame的数据添加到现有的csv文件中?,scala,csv,apache-spark,apache-spark-sql,sftp,Scala,Csv,Apache Spark,Apache Spark Sql,Sftp,在远程SFTP服务器中,我有csv文件和一些数据。是否可以将DataFrame的数据添加到此现有文件?换句话说,csv文件中以前的数据不应被覆盖 我使用library来完成这个任务,并注意到下面的代码重新创建了这个文件。换句话说,csv文件中以前的数据将消失。你能提出什么建议来改善这种情况 val df: DataFrame = Seq( ("Alex", "2018-01-01 00:00:00", "2018-02-01 00:00:00", "OUT"), ("Bob",

在远程SFTP服务器中,我有
csv
文件和一些数据。是否可以将DataFrame的数据添加到此现有文件?换句话说,csv文件中以前的数据不应被覆盖

我使用library来完成这个任务,并注意到下面的代码重新创建了这个文件。换句话说,csv文件中以前的数据将消失。你能提出什么建议来改善这种情况

val df: DataFrame = Seq(
    ("Alex", "2018-01-01 00:00:00", "2018-02-01 00:00:00", "OUT"),
    ("Bob", "2018-02-01 00:00:00", "2018-02-05 00:00:00", "IN"),
    ("Kate", "2018-02-01 00:00:00", "2018-02-05 00:00:00", "IN"),
    ("Alice", "2018-02-01 00:00:00", "2018-02-05 00:00:00", "OUT"),
).toDF("FIRST_NAME", "START_DATE", "END_DATE", "STATUS")

df.write.
    format("com.springml.spark.sftp").
    option("host", "XXXX").
    option("username", "XXXX").
    option("password", "****").
    option("fileType", "csv").
    option("delimiter", ";").
    save("/PATH/test.csv")

只需添加附加模式选项:

    mode(SaveMode.Append).
完整示例:

import org.apache.spark.sql.SaveMode
df.write.
    format("com.springml.spark.sftp").
    option("host", "XXXX").
    option("username", "XXXX").
    option("password", "****").
    option("fileType", "csv").
    option("delimiter", ";").
    mode(SaveMode.Append).
    save("/PATH/test.csv")

您需要以追加模式写入

df.write.
mode("append").
format("com.springml.spark.sftp")
...

你好我尝试了你的代码,但不幸的是它覆盖了现有的csv文件。你还有其他想法吗?你好!我尝试了你的代码,但不幸的是它覆盖了现有的csv文件。你还有其他想法吗?你确定吗?你能把你的全部代码都贴出来检查一下吗?它和我的完全一样吗?是的,我肯定。我只是按照您的建议添加了
模式(SaveMode.Append)
,仅此而已。你测试你的代码吗?在我看来,
spark-sftp
library就地忽略了我们的
模式
选项。你怎么看待这个假设?