表结构
department person date sales
dep1 alice 0 10
dep1 alice 1 20
dep1 bob 0 20
dep1 bob 1 40
dep1 bob 2 50
类似于sql
SELECT department, person, date, sum(value)
AS sales_sofar over(PARTITION BY dim1,dim2
ORDER BY date)
当我在spark sql中运行它或删除window函数并在hive中运行时,它只需要2分钟的时间,但是当我在hive中运行整个sql时,它花费了一个多小时,并且似乎卡在一个reduce中并具有没有进展,所以我检查了reduce,只有1个reducer,我想可能是因为order by子句,所以我也尝试了
select sum(value) over w1 window w1 as(distribute by dim1,dim2 sort by index)
,但是是一样的。我尝试过类似mapreduce.input.fileinputformat.split.maxsize
的参数,它虽然好一点,但仍然很慢。我的问题是:为什么这么慢,为什么通过聚类分配不起作用,那里还是只有一个减速器?