如果我有一个火花DF,我的理解是,在它被持久化或类似的东西之前,DF并没有真正实现,在所说的事情发生之前,它在理论上“只是一个解释计划”。例如,如果我有
df
并从中删除一些行,直到DF需要具体化,它实际上只是
df - subset1
,如果我再删除一些行,它就是
df - subset1 - subset2
。
我有一个用例,其中这是在
for
循环,并且每次迭代的执行时间一致地至少加倍。经过一些研究,在每个循环结束时都这样做,解决了问题:
data = data.rdd.toDF(schema)
就我而言,这条线大约需要1分钟
data
最初是具有30个字符串列的10MM行,并且每次迭代减少1MM行。
-
我的理解正确吗?
-
有更好的方法吗?