Команда truncate table
удаляет кэшированные данные, а затем кэширует и очищает таблицу. ЗДЕСЬ является источником truncate
.Если вы перейдете по этой ссылке на исходный код для TruncateTableCommand
, в нижней части класса case вы увидите следующее, как обрабатываются кэш и таблица при усечении таблицы:
// After deleting the data, invalidate the table to make sure we don't keep around a stale
// file relation in the metastore cache.
spark.sessionState.refreshTable(tableName.unquotedString)
// Also try to drop the contents of the table from the columnar cache
try {
spark.sharedState.cacheManager.uncacheQuery(spark.table(table.identifier))
} catch {
case NonFatal(e) =>
log.warn(s"Exception when attempting to uncache table $tableIdentWithDB", e)
}
if (table.stats.nonEmpty) {
// empty table after truncation
val newStats = CatalogStatistics(sizeInBytes = 0, rowCount = Some(0))
catalog.alterTableStats(tableName, Some(newStats))
}
Seq.empty[Row]