优化 spark sql 笛卡尔连接

     2023-04-15     288

关键词:

【中文标题】优化 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 请检查一下

【讨论】:

我已经尝试优化配置,但仍然没有执行。

使用笛卡尔连接优化 sql 查询

】使用笛卡尔连接优化sql查询【英文标题】:Optimisingsqlquerywithcartesianjoin【发布时间】:2016-05-0420:16:44【问题描述】:我有2个表sl和sd。如果可以的话,我想优化下面的查询selectsl.*,sd.*fromsljoinsdwheresl.conf_id=\'blah\'andsd.for_as=1我的理... 查看详情

spark sql:如何优化多个巨大的配置单元表连接

】sparksql:如何优化多个巨大的配置单元表连接【英文标题】:sparksql:howtooptimizemultiplehugehivetablesjoin【发布时间】:2019-01-2220:00:53【问题描述】:有sparksql作业:spark.sql(s"""SELECT*FROM(select*fromdefault.table1wherecreated_dtbetweendate\'2018-01-01... 查看详情

为啥 Spark 认为这是一个交叉/笛卡尔连接

】为啥Spark认为这是一个交叉/笛卡尔连接【英文标题】:WhydoesSparkthinkthisisacross/Cartesianjoin为什么Spark认为这是一个交叉/笛卡尔连接【发布时间】:2017-02-2702:51:19【问题描述】:我想加入两次数据如下:rdd1=spark.createDataFrame([(1,\'a\... 查看详情

Spark SQL 是不是包含针对连接的表流优化?

】SparkSQL是不是包含针对连接的表流优化?【英文标题】:DoesSparkSQLincludeatablestreamingoptimizationforjoins?SparkSQL是否包含针对连接的表流优化?【发布时间】:2015-08-2020:15:53【问题描述】:SparkSQL是否包含针对连接的表流式优化,如... 查看详情

表连接的优化(五)

...###表连接的原理表连接采用的是<fontstyle="color:coral">笛卡尔乘积</font>,称之为横向连接.###笛卡尔乘积笛卡尔乘积:是指将多张表的所有数据相连,最后连接的结果数为多张表数量的乘积。例如:这里有一张学生信息表(3条... 查看详情

笛卡尔连接 (PY)Spark 最佳实践

】笛卡尔连接(PY)Spark最佳实践【英文标题】:CartesianJoin(PY)SparkBestPractices【发布时间】:2018-04-1100:47:34【问题描述】:我是Spark的新手,我们目前有一个非常小的集群(14个节点,每个节点48个核心)。我有2个数据框。一个是4100... 查看详情

Spark sql 查询优化

】Sparksql查询优化【英文标题】:Sparksqlqueryoptimization【发布时间】:2019-02-1210:12:04【问题描述】:我想在spark数据框中加载一个数据表。我的数据库中有2个表。是否需要写2次完整连接选项?有什么办法可以写一次公共部分,然... 查看详情

spark join 引发“检测到 INNER 连接的笛卡尔积”

】sparkjoin引发“检测到INNER连接的笛卡尔积”【英文标题】:sparkjoinraises"DetectedcartesianproductforINNERjoin"【发布时间】:2017-02-1008:12:08【问题描述】:我有一个数据框,我想为每一行添加new_col=max(some_column0)由其他一些column1... 查看详情

sql性能优化以及性能测试(代码片段)

SQL性能优化以及性能测试博主介绍笛卡尔连接分页limit的sql优化的几种方法💫点击直接资料领取💫博主介绍🌊作者主页:苏州程序大白🌊作者简介:🏆CSDN人工智能域优质创作者🥇,苏州市凯... 查看详情

一文带你搞懂如何优化慢sql(代码片段)

...得到满足关联条件的两张表的数据,不加关联条件会出现笛卡尔积。◦然后利用groupby对数据进行分组。按照SQL语句中的分组条件对数据进行分组,但是不会筛选数据。下面用按照id的奇偶 查看详情

Spark Sql 作业优化

】SparkSql作业优化【英文标题】:SparkSqlJoboptimization【发布时间】:2018-09-3018:46:03【问题描述】:我有一个工作,它包含大约9条sql语句来从hive中提取数据并写回hivedb。它目前正在运行3小时,考虑到处理数据的火花能力,这似乎... 查看详情

sql连接详解

笛卡尔乘积:A=a,b,集合B=0,1,2,则AxB的笛卡尔积为(a,0),(a,1),(a,2),(b,0),(b,1),(b,2);(AxB≠BxA)数据库中内连接与多表查询的区别 sql="select[个人信息$].*,[工作经历$].*from[个人信息$],[工作经历$]where[个人信息$].UID=[工作经历$].UID"sql="s... 查看详情

sql中innerjoin,outerjoin和crossjoin的区别

参考技术Ainnerjoin:内连接(不带on/using时做笛卡尔积)主表和关联表的笛卡尔积结果,通过on或者using操作筛选结果集(先求笛卡尔积,后筛选,所以性能上和where一样),2个表的所有列都被保存leftjoin:左外连接(必须带on/using... 查看详情

三.spark优化参数(代码片段)

spark优化参数--设置sparkshuffle分区数量参考:excutor-cores*3set("spark.sql.shuffle.partitions","36")--1.broadcastHashJOin--默认小表小于10M自动进行广播joinset("spark.sql.autoBroadcastJoinThreshold 查看详情

有没有办法优化 spark sql 代码?

】有没有办法优化sparksql代码?【英文标题】:isthereawaytooptimizesparksqlcode?【发布时间】:2016-02-0310:35:30【问题描述】:更新:我正在使用sparksql1.5.2。尝试读取许多parquet文件并过滤和聚合行-在我的hdfs中~30个文件中存储了~35M行,... 查看详情

sql连接合并子查询

...接分为内连接、外连接、交叉连接内连接和外连接都是在笛卡尔积的基础做一些修改。合并查询:把两个相似的结果可以用union联合起来。mysql>selectid,timefromexam->union->selectid,timefromrecuit;+-----+------------+|id|time|+-----+------------+... 查看详情

在 PySpark 中的文字列上检测到 INNER 连接的笛卡尔积

】在PySpark中的文字列上检测到INNER连接的笛卡尔积【英文标题】:DetectedcartesianproductforINNERjoinonliteralcolumninPySpark【发布时间】:2018-11-2315:12:45【问题描述】:以下代码引发“检测到内部连接的笛卡尔积”异常:first_df=spark.createDat... 查看详情

spark sql databricks - 优化后的事务日志错误

】sparksqldatabricks-优化后的事务日志错误【英文标题】:sparksqldatabricks-transactionlogerrorafteroptimize【发布时间】:2021-08-3019:27:40【问题描述】:我有两张表,写成这样:f_em.write.format(\'delta\').mode("overwrite").saveAsTable(\'rens.f_em\')f_dial.wri... 查看详情