更新时间:2024-07-27 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;

关键字

无。

参数说明

表1 参数描述

参数

描述

db_name

Database名称,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。

table_name

表名称。Database中的表名,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。如果特殊字符需要使用单引号('')包围起来。

注意事项

无。

示例

刷新表test的元数据信息。

1
REFRESH TABLE test;