Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 在pyspark中连接大型表时,如何消除数据倾斜?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 在pyspark中连接大型表时,如何消除数据倾斜?

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列合并?

表A约有150M行,而表B约有60行。在表A中,
列_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()