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

时间:2019-04-29 07:15:02

标签: scala csv apache-spark apache-spark-sql sftp

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

我使用spark-sftp库执行此任务,并注意下面的代码重新创建了该文件。换句话说,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")

2 个答案:

答案 0 :(得分:1)

只需添加附加模式选项:

import keras 

完整示例:

    mode(SaveMode.Append).

答案 1 :(得分:0)

您需要以附加模式编写。

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")