2016-09-02 14 views
0

私はSpark 1.3.1とSpark Connectorを使用しています。Spark Cassandra Connector IN文where句

rdd.select("foo", "bar").where("date > ?", date) 

のようなクエリを作成しました。クエリを

val catList = List(1, 2, 3) 
rdd.select("foo", "bar").where("date > ?", date).where("cat in (?)", catList) 

と変更したいのですが、これでエラーが発生します。私はINクエリを行うことができるように、 "where"メソッドの正しい構文が何であるか知りたいです。

編集::

これは私

val catList = List(1, 2, 3) 
val query = rdd.select("foo", "bar").where("date > ?", date).filter(r => catList.contains(r.getInt("cat"))) 

のために動作しますが、我々はどこ方法にチェックを入れていることができれば、私はどこの方法は、フィルタよりも優れ限り動作することを感じるので、私は疑問に思いますパフォーマンスが関係しているからです。

答えて

1

それは周りの括弧を削除することで動作するはずです:?

rdd.select("foo", "bar").where("date > ?", date).where("cat in ?", catList) 
+0

はエラー 'PRIMARY KEY列「猫」が制限することはできません提供します(前回のコラム「日付」は非EQ関係によって制限されている)' –

+0

これを見てください:http://stackoverflow.com/questions/27251237/cassandra-invalid-query-message-primary-key-column-lng-cannot-be-restricte – Samar

関連する問題