优化 spark sql 笛卡尔连接
Posted
技术标签:
【中文标题】优化 spark sql 笛卡尔连接【英文标题】:Optimizing spark sql Cartesian join 【发布时间】:2019-12-30 08:53:43 【问题描述】:我必须对两个分别为 3M 和 1M 的数据集执行笛卡尔连接。这意味着 3M 数据集中的每一行都应该连接到 1M 数据集中的每一行。之后,我必须在笛卡尔积上执行多个其他联接。使用 PySpark 运行代码大约需要 9 天。有什么办法可以优化吗?
【问题讨论】:
嗨!你能发布你用来执行笛卡尔连接的coe吗?这样我们就可以看到可以优化的地方。 不确定笛卡尔积可以,需要优化。 forums.databricks.com/questions/6747/… @Titulum 我在笛卡尔连接之前编写的代码非常大,最终创建了 2 个表,这些表依次被连接。所以最终查询变成:“select a.v1,a.v1 from tableA a cross join tableB b” 【参考方案1】:我之前遇到过同样的情况,但无法加入优化。所以我根据下面链接中提到的第三个选项更改了我的 spark 执行器配置 https://spoddutur.github.io/spark-notes/distribution_of_executors_cores_and_memory_for_spark_application.html 请检查一下
【讨论】:
我已经尝试优化配置,但仍然没有执行。以上是关于优化 spark sql 笛卡尔连接的主要内容,如果未能解决你的问题,请参考以下文章