2016-03-15 89 views
0

这里的数据帧:如何删除每个组的记录数低于阈值?

id | sector  | balance 
--------------------------- 
1 | restaurant | 20000 
2 | restaurant | 20000 
3 | auto  | 10000 
4 | auto  | 10000 
5 | auto  | 10000 

如何找到每个sector类型的计数和下面具体LIMITsector型计数删除记录?

以下:

dataFrame.groupBy(columnName).count() 

给了我一个值出现在该栏中的次数。

如何使用DataFrame API在Spark和Scala中执行此操作?

回答

0

不知道这是否是最好的方式。但这对我有效。

def getRecordsWithColumnFrequnecyLessThanLimit(columnName: String,limit :Integer): DataFrame ={ 
    val g=dataFrame.groupBy(columnName).count().filter("count<"+limit).select(columnName).rdd.map(r => r(0)).collect() 
    dataFrame.filter(dataFrame(columnName) isin (g:_*)) 
} 
0

因为它是一个数据框,您可以使用SQL查询像

select sector, count(1) 
from TABLE 
group by sector 
having count(1) >= LIMIT 
相关问题