[英]Multiple Filter condition in scala and in and not in clause filter
我正在尝试使用 scala 做一个类似于下面的过滤器
其中 col1 = 'abc' 和 col2 不在 (0,4) 和 col3 在 (1,2,3,4)
我试着写这样的东西
val finalDf: DataFrame =
initDf.filter(col("col1") ="abc")
.filter(col("col2") <> 0)
.filter(col("col2") <> 4)
.filter(col("col3") = 1 ||col("col3") = 2 ||col("col3") = 3 ||col("col3") = 4)
要么
val finalDf: DataFrame =
initDf.filter(col("col1") ="abc")
&& col("col2") != 0 && col("col2") != 4
&& (col("col3") = 1
|| col("col3") = 2
|| col("col3") = 3
|| col("col3") = 4))
两者似乎都不起作用。 谁可以帮我这个事。
对于 col 运算符有点不同
平等使用===
对于不平等 =!=
如果你想使用文字,你可以使用 lit function
您的示例可能如下所示
dfMain.filter(col("col1") === lit("abc"))
.filter(col("col2") =!= lit(0))
.filter(col("col2") =!= lit(4))
.filter(col("col3") === lit(1) || col("col3") === lit(2) ||col("col3") === lit(3) ||col("col3") === lit(4))
您也可以使用 isin 代替此过滤器与 multiply ors
如果你想找到更多关于 cols 运算符的信息,你可以阅读这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.