恢复给定表的所有分区并更新目录。
Syntax
recoverPartitions(tableName: str)
参数
| 参数 | 类型 | Description |
|---|---|---|
tableName |
str | 要获取的表的名称。 |
注释
仅适用于已分区表,不适用于视图。
示例
# The example below creates a partitioned table against the existing directory of
# the partitioned table. After that, it recovers the partitions.
import tempfile
with tempfile.TemporaryDirectory(prefix="recoverPartitions") as d:
_ = spark.sql("DROP TABLE IF EXISTS tbl1")
spark.range(1).selectExpr(
"id as key", "id as value").write.partitionBy("key").mode("overwrite").save(d)
_ = spark.sql(
"CREATE TABLE tbl1 (key LONG, value LONG)"
"USING parquet OPTIONS (path '{}') PARTITIONED BY (key)".format(d))
spark.table("tbl1").show()
spark.catalog.recoverPartitions("tbl1")
spark.table("tbl1").show()
# +-----+---+
# |value|key|
# +-----+---+
# +-----+---+
# +-----+---+
# |value|key|
# +-----+---+
# | 0| 0|
# +-----+---+
_ = spark.sql("DROP TABLE tbl1")