我有一张分区的table event_fact
. 分区列是 dt, type
. 然后我在那张table上面创建了一个视图。
create view event_fact_view as select
dt, type, columnA, columnB, collect_list(columnC)
from event_fact
group by dt, type, columnA, columnB;
当我运行下面的查询时,sparksql将对event\u fact执行一次完整的表扫描,而不考虑分区列。但是,如果我在配置单元上运行相同的sql,它就能够识别这一点。
select * from event_fact_view where dt='20190501' and type='A';
正如我所指出的,这个问题与自定义框架有关 collect_list
,如果我删除“collect\u list”,sparksql可以先过滤然后分组。这是激发sql的已知问题吗?我找不到与此相关的任何文档或jira。还有别的办法吗 collect_list
?
暂无答案!
目前还没有任何答案,快来回答吧!