即使在并行线程中提交联接,Spark也会顺序执行联接

时间:2018-12-05 14:36:33

标签: apache-spark apache-spark-sql apache-spark-dataset

我在Spark的驱动程序节点上运行4个并行线程,它们执行相同的操作,但具有不同的数据。 Spark会并行执行所有提交的作业,直到存在连接为止。那时,连接动作是顺序执行的。 这是SparkUI显示的内容: enter image description here

我可以做些什么使连接并行运行吗?

更新:

我用来启动该过程的命令是:

spark-submit  
   --master local[16]  
   --class ...  
   --driver-memory 11G  
   --conf spark.default.parallelism=4  
   --conf spark.sql.shuffle.partitions=4

我只使用4个分区,因为我处理的数据非常小(2-3MB)。
目前,我正在本地模式下进行测试。 在生产中,我将使用EMR群集。

1 个答案:

答案 0 :(得分:0)

问题是我在加入后立即保留了数据。删除持久性之后,联接将并行进行。