巧用Scala结合par方法

不说话,直接看图:

是很简单的执行24次count,左边是串行(节省时间我把第五个jobkill掉了),右边是par后执行,可以看出par的威力。附代码:

val ses = ...().par

ses.tasksupport = new ForkJoinTaskSupport(new ForkJoinPool(4))

ses.map{case (h, (start, end)) => ..... //执行spark sql的count}

关于并行、串行的利弊我想不需要多说了吧,但是在平常我看到很多代码明明相互独立,却要一步一步串行,这个就很浪费资源,比如有些stage只有那么几个task占用资源,空闲的core就太浪费了,所以要并行,然后还需要考虑并发量控制一下就好。

你可能感兴趣的:(spark,scala)