阿帕奇星火数据框: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|
+---+---+