【发布时间】:2020-03-24 08:22:42
【问题描述】:
假设我有两个要使用“inner join”连接的数据框: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 吗?
提前感谢您的回答:
【问题讨论】:
标签: apache-spark join pyspark apache-spark-sql