У объекта SparkSession.catalog
есть несколько методов для взаимодействия с метастазами, а именно:
['cacheTable',
'clearCache',
'createExternalTable',
'createTable',
'currentDatabase',
'dropGlobalTempView',
'dropTempView',
'isCached',
'listColumns',
'listDatabases',
'listFunctions',
'listTables',
'recoverPartitions',
'refreshByPath',
'refreshTable',
'registerFunction',
'setCurrentDatabase',
'uncacheTable']
К сожалению, похоже, нет никакого программного c способа удаления таблицы.
Есть несколько способов достичь этого, например
spark.sql(f"drop table my_table")
или
spark._jsparkSession.sharedState().externalCatalog().dropTable(db, table, True, True)
, но они выглядят немного хаки sh по сравнению с простым, но отсутствующим dropTable
метод?
Есть ли лучший способ?