MapReduce服务 MRS-Spark SQL无法查询到ORC类型的Hive表的新插入数据:回答

时间:2023-11-01 16:25:29

回答

由于Spark存在一个机制,为了提高性能会缓存ORC的元数据信息。当通过Hive或其他方式更新了ORC表时,缓存的元数据信息未更新,导致Spark SQL查询不到新插入的数据。

对于存储类型为ORC的Hive分区表,在执行插入数据操作后,如果分区信息未改变,则缓存的元数据信息未更新,导致Spark SQL查询不到新插入的数据。

解决措施:

  1. 在使用Spark SQL查询之前,需执行Refresh操作更新元数据信息:

    REFRESH TABLE table_name;

    table_name为刷新的表名,该表必须存在,否则会出错。

    执行查询语句时,即可获取到最新插入的数据。

  2. 使用sqark时,执行以下命令禁用Spark优化:

    set spark.sql.hive.convertMetastoreOrc=false;

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24491.html