是否有一种方法,在相同的Spark应用程序甚至相同的作业中,为每次shuffle指定不同数量的shuffle分区,而不是为所有的shuffle分区指定全局数量?
也就是说,可以
spark.sql.shuffle.partitions
可以动态设置为每个涉及变换的DataFrame转换的不同值吗?
这适用于这样的场景:作业是一个大DAG,一些shuffle输出可能很小,而另一些则非常大。
谢谢!
当然可以。
在JOIN或Aggregation之前发出命令sqlContext.setConf("spark.sql.shuffle.partitions", "nnn")
。但是对查询的广播散列连接方面没有影响。
试着看看。