Pyspark 中是不是有等效于 SQL 的 MSCK REPAIR TABLE 的方法

Posted

技术标签:

【中文标题】Pyspark 中是不是有等效于 SQL 的 MSCK REPAIR TABLE 的方法【英文标题】:Is there a method in Pyspark equivalent to SQL's MSCK REPAIR TABLEPyspark 中是否有等效于 SQL 的 MSCK REPAIR TABLE 的方法 【发布时间】:2019-05-16 13:25:55 【问题描述】:

在 SQL 中有:

REFRESH TABLE table_name

在 pyspark 中相当于:

spark.refreshTable(table_name)

那么,Pyspark 相当于:

MSCK REPAIR TABLE table_name

【问题讨论】:

spark.sql('MSCK REPAIR TABLE table_name') 我知道你可以通过 spark.sql() 执行 sql,但这不是我的问题。我想知道一个专用的 pyspark 函数。 【参考方案1】:

refreshTable 与 spark session catalog 集成。

按照 steven 的建议,您可以使用 spark.sql('MSCK REPAIR TABLE table_name')

上面的链接中有一个叫做recoverPartitions 的东西(仅适用于分区表,而不是视图)。我相信这是msck repair table 的别名版本。你可以继续试试这个..

看到这个ddl.scala 似乎与文档相同。 示例用法:

spark.catalog.recoverPartitions(tableName) 

【讨论】:

我认为 recoverPartitions 是我正在寻找的。将对其进行测试,稍后再回来确认。 @Ram Ghadiyaram 能否请您多介绍一下recoverPartitions .. 它是如何工作的,它是否可用于pyspark @vikrantrana 是的,它可用于 pyspark。只需点击答案中目录文档的链接即可。 @vikrantrana 您只需要获取您的上下文及其目录,就我而言,我使用了 Spark 上下文:spark.catalog.recoverPartitions()

以上是关于Pyspark 中是不是有等效于 SQL 的 MSCK REPAIR TABLE 的方法的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle 中等效于 Ms Sql sys 表

PySpark 中是不是有与 Pandas 聚合函数 any() 等效的函数?

PySpark 中是不是有与 scikit-learn 的 sample_weight 等效的参数?

pyspark 等效于 Scala API 中的标志“isLocal”

等效于 Scala Dataset#transform 方法的 Pyspark 转换方法

如何在pyspark中使用等效的熊猫轴来删除列而不是行?