我正在尝试使用Pyspark覆盖S3中的Parquet文件。该桶启用了版本控制。
我正在使用以下代码:
写入 v1:
df_v1.repartition(1).write.parquet(path='s3a://bucket/file1.parquet')
更新 v2:
df_v1 = spark.read.parquet("s3a://bucket/file1.parquet")
df_v2 = df_v1.... <- transform
df_v2.repartition(1).write.mode("overwrite").parquet('s3a://bucket/file1.parquet')
但是当我读取df_v2时,它包含了来自两个写操作的数据。此外,在写入df_v1后,我可以看到一个part-xxx.snappy.parquet文件,而在写入df_v2后,我可以看到两个文件。它的行为类似于追加而不是覆盖。
我错过了什么?谢谢。
Spark = 2.4.4 Hadoop = 2.7.3