如何根据id列表过滤数据帧?

时间:2018-04-01 19:05:42

标签: scala apache-spark apache-spark-sql

我的数据框看起来像

     df.show()
     id |
     1  |
     2  |
     3  |
     .
     .
     .
     df.count()
     26137
     df.distinct().count()
     26137

我有一个清单

     lisst=List(4,75,30)

我想在lisst中获取没有行的数据帧,所以我尝试了

     val df1=df.filter(!(col("id").isin(lisst:_*)))

当我想在df1中计算行数时,我会有26134但是我有

     df1.count()
     25791

我也将lisst改为

     lisst=List()
     df.filter(!(col("id").isin(lisst:_*)).count()
     25669

如何在List中获取没有id的数据帧。

1 个答案:

答案 0 :(得分:1)

显然,你的一些id是空的。要获得完整计数,请使用:

 lisst=List()
 df.filter(!(col("id").isin(lisst:_*) or col("id").isNull).count()