Pyspark中是否有与SQL的MSCK REPAIR TABLE等效的方法?

7

在SQL中有:

REFRESH TABLE table_name

而在Pyspark中,相当于:

spark.refreshTable(table_name)

所以,Pyspark中相当于以下代码的是什么:

MSCK REPAIR TABLE table_name

1
spark.sql('MSCK REPAIR TABLE table_name') - Steven
我知道你可以通过spark.sql()执行SQL,但那不是我的问题。我想知道一个专门用于此的pyspark函数。 - Henrique Florencio
1个回答

8

refreshTable已经与spark session的catalog集成。

正如Steven建议的,您可以使用spark.sql('MSCK REPAIR TABLE table_name')

在上面的链接中有一些被称为recoverPartitions的内容(仅适用于分区表,而不是视图)。我认为这是msck repair table的别名版本。您可以尝试一下。

看起来这个ddl.scala的文档介绍似乎与之相等。
使用示例:

spark.catalog.recoverPartitions(tableName) 

2
我认为 recoverPartitions 就是我正在寻找的。我会测试它并稍后回来确认。 - Henrique Florencio
@Ram Ghadiyaram,您能否详细介绍一下recoverPartitions的工作原理,并说明它是否可在pyspark中使用。 - vikrant rana
1
@vikrantrana 是的,它可以在Pyspark中使用。只需按照答案中目录文档的链接即可。 - Steven
1
@vikrantrana 你只需要获取你的上下文及其目录,我这里使用了Spark上下文:spark.catalog.recoverPartitions()。 - Henrique Florencio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接