我有一个脚本,多个数据帧的联合和插入会导致CSV文件。我需要优化它的执行速度。我最近学习了缓存和取消持久化。这是我所做的: val grc = Tables.getGRC(spark) // This is my first df.
val grc_cache = grc.cache()
var sigma = Tables.getSIGMA(spark, use_database_sigma(0)) // Second DF
var sigma_cache = sigma.cache()
for(i <- 1 until use_database_si
我有两个中等大小的表(tableA和tableB),在这两个表中,我在同一个连接键上两次连接tableB和tableA。
...
from tableA A
left join tableB B1 on A.col1 = B1.col1
left join tableB B2 on A.col2 = B2.col1
我看到tableB在spark DAG中被交换了两次。
由于交换是在同一个连接密钥(col1)上进行的,我很好奇第二次交换是否可以避免?