0
在我的代碼,我有dataframes序列,其中我想篩選出數據幀的哪些是空的。我做的是這樣的:星火的數據框count()函數採取非常長的
Seq(df1, df2).map(df => df.count() > 0)
然而,這正在極長且消耗約7分鐘,約2數據幀的各行100K的。
我的問題:爲什麼是星火的實現計數的()是緩慢的。有沒有解決辦法?
在我的代碼,我有dataframes序列,其中我想篩選出數據幀的哪些是空的。我做的是這樣的:星火的數據框count()函數採取非常長的
Seq(df1, df2).map(df => df.count() > 0)
然而,這正在極長且消耗約7分鐘,約2數據幀的各行100K的。
我的問題:爲什麼是星火的實現計數的()是緩慢的。有沒有解決辦法?
計數是一個懶惰的操作。所以,你的數據幀有多大並不重要。但是如果你對數據有太多昂貴的操作來獲得這個數據幀,那麼一旦計數被調用,spark實際上會做所有的操作來獲得這些數據幀。
一些昂貴的操作可能會需要哪些數據洗牌的操作。像GROUPBY,減少等
所以我的猜測是,你有一些複雜的處理讓你用得到這個數據幀是太龐大了,這些dataframes或您的初始數據。