结构字段的 Hive“为空”检查问题

Lya*_*ill 5 hive hql hiveql parquet

似乎对结构字段的 NULL 检查有奇怪的行为。条件where some_struct_field is not null返回some_struct_field实际为空的行。
有没有人遇到过这个问题或有任何建议如何处理?

存储格式:parquet
Hive 版本:2.2.0

架构看起来像:

CREATE EXTERNAL TABLE IF NOT EXISTS event(
  key STRING,
  ts BIGINT,
  info STRUCT<
      id: BIGINT,
      message: BIGINT>
)
PARTITIONED BY(event_date STRING)
STORED AS PARQUET
LOCATION '/logs/events';
Run Code Online (Sandbox Code Playgroud)

查询结果不正确:

SELECT * FROM event where event_date = '20200401' and info is not null;
Run Code Online (Sandbox Code Playgroud)

查询结果正确:

SELECT * FROM event where event_date = '20200401' and info.id is not null;
Run Code Online (Sandbox Code Playgroud)