Apache Spark DataFrame:df.where() 具有 Java:List 属性
Apache Spark DataFrame: df.where() with Java:List attribute
假设你有一个这样的 df:
a b
1 1
1 2
1 3
2 1
2 2
2 3
并且您想实现一个通用的 .where 功能;
如何按列表过滤
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|
+---+---+
假设你有一个这样的 df:
a b
1 1
1 2
1 3
2 1
2 2
2 3
并且您想实现一个通用的 .where 功能; 如何按列表过滤
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|
+---+---+