How to use Column.isin with list?

后端 未结 5 1591
眼角桃花
眼角桃花 2020-11-29 06:00
val items = List(\"a\", \"b\", \"c\")

sqlContext.sql(\"select c1 from table\")
          .filter($\"c1\".isin(items))
          .collect
          .foreach(println)         


        
5条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-29 06:05

    According to documentation, isin takes a vararg, not a list. List is actually a confusing name here. You can try converting your List to vararg like this:

    val items = List("a", "b", "c")
    
    sqlContext.sql("select c1 from table")
              .filter($"c1".isin(items:_*))
              .collect
              .foreach(println)
    

    Your variant with mkString compiles, because one single String is also a vararg (with number of arguments equal to 1), but it is proably not what you want to achieve.

提交回复
热议问题