Apache spark 在Spark SQL中,连接非常大的数据帧(1000300行)和相对较小的数据帧(6090行)的最有效方法是什么?
在Pig拉丁语中,我们有一种特殊的连接,称为片段复制连接,将一个非常大的关系连接到一个较小的关系。在SparkSQL中,是否有任何方法可以在非常大的数据帧和较小的数据帧之间执行有效的连接,类似于PigLatin中的连接。这称为广播连接 如果数据帧的大小低于Apache spark 在Spark SQL中,连接非常大的数据帧(1000300行)和相对较小的数据帧(6090行)的最有效方法是什么?,apache-spark,join,apache-spark-sql,Apache Spark,Join,Apache Spark Sql,在Pig拉丁语中,我们有一种特殊的连接,称为片段复制连接,将一个非常大的关系连接到一个较小的关系。在SparkSQL中,是否有任何方法可以在非常大的数据帧和较小的数据帧之间执行有效的连接,类似于PigLatin中的连接。这称为广播连接 如果数据帧的大小低于spark.sql.autoBroadcastJoinThreshold,spark将自动使用这种类型的连接。如果没有,请将数据帧包装在广播功能中: import org.apache.spark.sql.functions._ df1.joi
spark.sql.autoBroadcastJoinThreshold
,spark将自动使用这种类型的连接。如果没有,请将数据帧包装在广播
功能中:
import org.apache.spark.sql.functions._
df1.join(broadcast(df2))
Broadcast Hash Join
将数据帧广播到所有节点,这使得此连接非常快速,没有无序排列