Spark 顺序执行连接,即使它们是在并行线程中提交的

Spark executes joins sequentially even though they are submitted in parallel threads

I 运行 Spark 驱动程序节点上的 4 个并行线程执行相同的操作但使用不同的数据。 Spark 确实会并行执行所有提交的作业,直到存在连接为止。那时,连接操作是按顺序完成的。 这是 SparkUI 显示的内容:

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

更新:

我用来启动进程的命令是:

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

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

问题是我在加入后立即保留了数据。删除持久化后,连接是并行完成的。