2017-08-24 67 views
0

在我的代碼,我有dataframes序列,其中我想篩選出數據幀的哪些是空的。我做的是這樣的:星火的數據框count()函數採取非常長的

Seq(df1, df2).map(df => df.count() > 0) 

然而,這正在極長且消耗約7分鐘,約2數據幀的各行100K的。

我的問題:爲什麼是星火的實現計數的()是緩慢的。有沒有解決辦法?

回答

4

計數是一個懶惰的操作。所以,你的數據幀有多大並不重要。但是如果你對數據有太多昂貴的操作來獲得這個數據幀,那麼一旦計數被調用,spark實際上會做所有的操作來獲得這些數據幀。

一些昂貴的操作可能會需要哪些數據洗牌的操作。像GROUPBY,減少等

所以我的猜測是,你有一些複雜的處理讓你用得到這個數據幀是太龐大了,這些dataframes或您的初始數據。