Кажется, что есть странное поведение для NULL-проверок для структурных полей. Условие where some_struct_field is not null
возвращает строки, в которых some_struct_field
фактически равно нулю.
Кто-нибудь сталкивался с этой проблемой или посоветовал, как с ней справиться?
Формат хранения: паркет
Версия куста: 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';
Запрос с неверным результатом:
SELECT * FROM event where event_date = '20200401' and info is not null;
Запрос с правильным результатом:
SELECT * FROM event where event_date = '20200401' and info.id is not null;