使用预先存在的数据集
s3://data/id=1/file.parquet
s3://data/id=2/file.parquet
传入数据框
/data/id=3/
如果传入的数据是用SaveMode.Append
df.write.partitionBy("id").mode(SaveMode.Append).parquet("s3://data/")
如果预先存在的数据集中的任何数据将被复制到创建的临时目录中,该怎么办?
答案 0 :(得分:3)
我的Spark应用程序中有一个非常相似的用例,但我不确定你的问题到底是什么,所以我会试着解释一下。
在写入id = 3的数据时,您建议现有数据的方式保持不变,数据将附加到s3:// data / s3:// data / id = 3。
使用partitionBy时路径是基本路径,所以如果您使用覆盖模式现有文件(s3:// data / id = 1 / ,s3:// data / id = 2 / )会被删除。
因为这是附加的,所以没有冲突。
你问过临时目录..如果你的意思是_temporary目录Hadoop输出提交者在提交文件之前用来写文件,而只是在写入数据时只有与最后一次写入相关的文件,一旦提交它们就会被删除。