Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 在Spark SQL中,连接非常大的数据帧(1000300行)和相对较小的数据帧(6090行)的最有效方法是什么?_Apache Spark_Join_Apache Spark Sql - Fatal编程技术网

Apache spark 在Spark SQL中,连接非常大的数据帧(1000300行)和相对较小的数据帧(6090行)的最有效方法是什么?

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

在Pig拉丁语中,我们有一种特殊的连接,称为片段复制连接,将一个非常大的关系连接到一个较小的关系。在SparkSQL中,是否有任何方法可以在非常大的数据帧和较小的数据帧之间执行有效的连接,类似于PigLatin中的连接。

这称为广播连接

如果数据帧的大小低于
spark.sql.autoBroadcastJoinThreshold
,spark将自动使用这种类型的连接。如果没有,请将数据帧包装在
广播
功能中:

import org.apache.spark.sql.functions._
df1.join(broadcast(df2))
Broadcast Hash Join
将数据帧广播到所有节点,这使得此连接非常快速,没有无序排列