阿帕奇星火数据框:df.where()与Java:列表属性

问题描述:

想象你有这样的DF:阿帕奇星火数据框:df.where()与Java:列表属性

a b 
1 1 
1 2 
1 3 
2 1 
2 2 
2 3 

,你想实现一个通用的。凡functionnality; 你怎么能由一个列表

val l1:List[Int] = List (1,2) 
df.where($"b" === l1:_*) // does not work 

过滤或者甚至有一个选项,在这里你可以问某事像这样:

df.where($"a" === l1:_* && $"b" === l1:_*) 

如果我有你的权利,你要IN语义:

df.where($"b" isin (l1: _*)).show() 
+---+---+ 
| a| b| 
+---+---+ 
| 1| 1| 
| 1| 2| 
| 2| 1| 
| 2| 2| 
+---+---+ 

而且

df.where(($"a" isin (l1: _*)) and ($"b" isin (l1: _*))).show() 
+---+---+ 
| a| b| 
+---+---+ 
| 1| 1| 
| 1| 2| 
| 2| 1| 
| 2| 2| 
+---+---+