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 的方法的主要内容,如果未能解决你的问题,请参考以下文章
PySpark 中是不是有与 Pandas 聚合函数 any() 等效的函数?
PySpark 中是不是有与 scikit-learn 的 sample_weight 等效的参数?
pyspark 等效于 Scala API 中的标志“isLocal”