我有3个Dataframe,每个Dataframe有50列和数百万条记录。我需要对上面的Dataframe应用一些常见的转换。
目前,我将这些Dataframe保存在scala列表中,并对每个Dataframe执行迭代操作。
我的问题是,在scala集合中保留大Dataframe是可以的,还是会有任何与性能相关的问题。如果是,以迭代方式处理多个Dataframe的最佳方法是什么?
提前谢谢。
我有3个Dataframe,每个Dataframe有50列和数百万条记录。我需要对上面的Dataframe应用一些常见的转换。
目前,我将这些Dataframe保存在scala列表中,并对每个Dataframe执行迭代操作。
我的问题是,在scala集合中保留大Dataframe是可以的,还是会有任何与性能相关的问题。如果是,以迭代方式处理多个Dataframe的最佳方法是什么?
提前谢谢。
1条答案
按热度按时间tkqqtvp11#
这样做没有问题,因为list只是对您的Dataframe的引用,而spark中的Dataframe是lazy eval。因此,除非你开始处理任何一个Dataframe,即对它们调用操作,否则它们不会被填充。一旦行动结束,它就会被清除。因此,这将等于分别调用它们3次,因此您的方法没有问题。