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 集群。
问题是我在加入后立即保留了数据。删除持久化后,连接是并行完成的。
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 集群。
问题是我在加入后立即保留了数据。删除持久化后,连接是并行完成的。