pyspark 如何在spark中覆盖整个分区表?

c86crjj0  于 2024-01-06  发布在  Spark
关注(0)|答案(1)|浏览(195)

我想覆盖外部表中的所有分区,当insertInto数据。如果任何分区不在数据中,它需要被删除。
saveAsTable改变了表结构,所以我不能使用它。
我尝试使用overwrite=True参数insertInto,但旧的分区没有删除。

djmepvbi

djmepvbi1#

  1. from pyspark.sql import SparkSession
  2. spark = SparkSession.builder.appName("example").getOrCreate()
  3. # Assuming you have a DataFrame with your new data
  4. new_data = ...
  5. table_name = "your_table"
  6. table_path = "path_to_your_table"
  7. new_data.write.mode("overwrite").insertInto(table_name)
  8. spark.sql(f"MSCK REPAIR TABLE {table_name}")

字符串
insert into方法和mode("overwrite")用于用新数据覆盖整个表。要删除新数据中不存在的分区,可以使用MSCK REPAIR TABLE命令。

相关问题