Apache spark 在pyspark中连接大型表时,如何消除数据倾斜?
表A约有150M行,而表B约有60行。在表A中,Apache spark 在pyspark中连接大型表时,如何消除数据倾斜?,apache-spark,pyspark,Apache Spark,Pyspark,表A约有150M行,而表B约有60行。在表A中,列_1可以而且通常确实包含大量空值。这会导致数据严重倾斜,一个执行者在离开后完成所有工作 我读过几篇关于解决方案的帖子,但我无法理解跨越几个不同版本Spark的不同方法 我需要对表A执行什么操作?我需要对表B执行什么操作来消除由于左连接而产生的倾斜分区 我正在使用Spark 2.3.0并用Python编写。在下面的代码片段中,我试图派生一个没有空值的新列(用于执行连接),但我不确定该将它放在哪里(我不知道如何处理表B) 是否将两个表与列_1列合并?
列_1
可以而且通常确实包含大量空值。这会导致数据严重倾斜,一个执行者在离开后完成所有工作
我读过几篇关于解决方案的帖子,但我无法理解跨越几个不同版本Spark的不同方法
我需要对表A执行什么操作?我需要对表B执行什么操作来消除由于左连接而产生的倾斜分区
我正在使用Spark 2.3.0并用Python编写。在下面的代码片段中,我试图派生一个没有空值的新列(用于执行连接),但我不确定该将它放在哪里(我不知道如何处理表B)
是否将两个表与列_1列合并?
new_column1 = when(col('column_1').isNull(), rand()).otherwise(col('column_1'))
df1 = df1.withColumn('no_nulls_here', new_column1)
df1.persist().count()