更新时间:2022-12-07 GMT+08:00
REFRESH TABLE刷新表元数据
功能描述
Spark为了提高性能会缓存Parquet的元数据信息。当更新了Parquet表时,缓存的元数据信息未更新,导致Spark SQL查询不到新插入的数据作业执行报错,报错信息参考如下:
DLI.0002: FileNotFoundException: getFileStatus on error message
该场景下就需要使用REFRESH TABLE来解决该问题。REFRESH TABLE是用于重新整理某个分区的文件,重用之前的表元数据信息,能够检测到表的字段的增加或者减少,主要用于表中元数据未修改,表的数据修改的场景。
语法格式
1
|
REFRESH TABLE [db_name.]table_name; |
关键字
无。
参数说明
参数 |
描述 |
---|---|
db_name |
Database名称,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。 |
table_name |
表名称。Database中的表名,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。如果特殊字符需要使用单引号('')包围起来。 |
注意事项
无。
示例
刷新表test的元数据信息。
1
|
REFRESH TABLE test; |
父主题: 分区表相关