我正在尝试在spark sql中运行以下查询,并且需要花费数小时才能执行,然后因内存不足而失败
有没有办法调优查询或以更好的方式重写?
我的业务逻辑需要总和和计数所以我需要在查询中执行一个组。有没有更好的方法来实现这个目标?
table1有160多亿条记录
table2拥有超过100万条记录
table1是按日期分区1
select b.a1,
,date1
,count(distinct(a.e))
,sum(b1)
FROM
(SELECT
a,
,b
,e
,date1
,sum(c*d) as b1
from table1
where a='xyz'
and b=11111
and d IN (15 parameters here in in clause)
and date1 >= '2014-01-01'
GROUP BY a
,b
,e
) a
INNER JOIN
table2 b
ON a.a=b.a
group by b.a1,
date1