У меня есть секционированная таблица event_fact
.Столбцы разделов dt, type
.А потом я создаю представление поверх этой таблицы.
create view event_fact_view as select
dt, type, columnA, columnB, collect_list(columnC)
from event_fact
group by dt, type, columnA, columnB;
И когда я выполню запрос ниже, spark-sql выполнит полное сканирование таблицы по event_fact независимо от столбцов раздела.Однако, если я запускаю тот же sql на кусте, он может это распознать.
select * from event_fact_view where dt='20190501' and type='A';
Как я уже определил, проблема связана с UDF collect_list
, если я удаляю «collect_list», спарк sql может фильтровать сначала, а затем группировать по.Это известная проблема, чтобы зажечь sql?Я не мог найти какую-либо документацию или JIRA, связанные с этим.Есть ли другой способ collect_list
?