Scala 是否可以将DataFrame的数据添加到现有的csv文件中?
在远程SFTP服务器中,我有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",
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就地忽略了我们的模式
选项。你怎么看待这个假设?