我正在使用Spark 1.3.1和Spark Connector。我写了一个像
这样的查询rdd.select("foo", "bar").where("date > ?", date)
这非常有效。我想将我的查询修改为
val catList = List(1, 2, 3)
rdd.select("foo", "bar").where("date > ?", date).where("cat in (?)", catList)
但这给了我一个错误。我想知道“where”方法的正确语法是什么,以便它可以进行IN
查询。
编辑::
这对我有用
val catList = List(1, 2, 3)
val query = rdd.select("foo", "bar").where("date > ?", date).filter(r => catList.contains(r.getInt("cat")))
但是我想知道我们是否可以在where方法中进行检查,因为我觉得where方法在性能方面比filter更好。
答案 0 :(得分:1)
它应该通过删除围绕?:
的括号来工作rdd.select("foo", "bar").where("date > ?", date).where("cat in ?", catList)