2016-04-26 96 views
0

想象你有這樣的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:_*) 

回答

2

如果我有你的權利,你要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| 
+---+---+