繁体   English   中英

多个过滤条件 in scala and in and not in clause filter

[英]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 运算符的信息,你可以阅读这个

中型博文第 1 部分

中型博文第 2 部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM