我有一个如下所示的表连接操作
rData = [rd1,rd2,rd3,...] # a list of spark dataframe
# option 1: lData.cache()
# option 2: lData = lData.repartition('joinKey').cache()
result = None
for rd in rData:
tmp = lData.join(rd,on='joinKey') # lData is a spark dataframe
result = tmp if not result else result.unionByName(tmp)
如您所见,lData
在针对 rData
元素的数据连接中重复使用。我正在考虑在内存中缓存 lData
以获得良好的数据连接性能(上面代码中的 option 1
)。在这种情况下,我是否还应该考虑通过 lData
对 joinKey
进行重新分区,以便在针对 rData
(上面代码中的 option2
),还是有必要?谢谢!