Spark子句中的Spark Cassandra Connector IN语句

时间:2016-09-02 14:47:20

标签: scala apache-spark cassandra

我正在使用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更好。

1 个答案:

答案 0 :(得分:1)

它应该通过删除围绕?:

的括号来工作
rdd.select("foo", "bar").where("date > ?", date).where("cat in ?", catList)