【发布时间】:2020-12-26 16:16:56
【问题描述】:
我正在尝试使用 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 之后,我可以看到两个。它表现为追加而不是覆盖。
我错过了什么?谢谢
火花 = 2.4.4 Hadoop = 2.7.3
【问题讨论】:
标签: apache-spark hadoop pyspark parquet