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 火花连接优化_Apache Spark_Join_Pyspark_Apache Spark Sql - Fatal编程技术网

Apache spark 火花连接优化

Apache spark 火花连接优化,apache-spark,join,pyspark,apache-spark-sql,Apache Spark,Join,Pyspark,Apache Spark Sql,假设我有两个数据帧,我想使用“内部连接””连接它们:A和B,每一个都有100列和数十亿行 如果在我的用例中,我只对A的10列和B的4列感兴趣,Spark会为我做优化以处理这一点并只洗牌14列,还是会洗牌所有内容然后选择14列 问题1: A_select = A.select("{10 columns}").as("A") B_select = B.select("{4 columns}").as("B") result = A_select.join(B_select, $"A.id"==$"B

假设我有两个数据帧,我想使用“内部连接””连接它们:A和B,每一个都有100列和数十亿行

如果在我的用例中,我只对A的10列和B的4列感兴趣,Spark会为我做优化以处理这一点并只洗牌14列,还是会洗牌所有内容然后选择14列

问题1:

A_select = A.select("{10 columns}").as("A")
B_select = B.select("{4 columns}").as("B")
result = A_select.join(B_select, $"A.id"==$"B.id")
问题2:

A.join(B, $"A.id"==$"B.id").select("{14 columns}")
Query1==Query2是否在行为、执行时间、数据洗牌方面


提前感谢您的回答:

是的,spark将为您处理优化。由于它的惰性评估行为,仅从datafrmes(A和B)中选择所需的属性

您可以使用
explain
功能查看逻辑/物理计划

result.explain()
两个查询将返回相同的物理计划。因此,执行时间和数据洗牌将是相同的

参考-用于解释功能