在Spark中,让我们说我有一个经历了100次转换的数据帧然后应用了一个动作。在任何情况下都会缓存中间数据框吗?我可以看到,当对数据帧应用了多个操作时,缓存会有所帮助,但单个操作如何?
澄清: 我有一个数据帧A使用它我获得2个不同的数据帧B和C.然后我做B和C的联合形成D我在其上应用一个动作。想象一下,这种情况发生在一个非常复杂的场景中,有很多分支。缓存A会加快这个过程吗?
答案 0 :(得分:0)
缓存DataFrame在第一次需要评估时没有任何好处(实际上它实际上具有性能成本并且显然增加了内存使用)。只有在重用时,缓存才有帮助。
如果你将A分成B和C,然后同时使用B和C,你刚刚使用了A两次,所以缓存它会有所帮助。
行动次数不是一项重要措施,重要的是执行路径。