2016-05-27 16 views
0

私はCassandraからデータを読み取るためにSpark-Cassandraコネクタを使用しています。私はC *で次のテーブルを持っている:主なキーを使用してCassandraのSparkでデータを選択

CREATE TABLE my_table (key uuid PRIMARY KEY, value text); 

私は自分のキーのリストでmy_tableレコードのリストを取得したいです。 java.io.IOException:によって引き起こさ

:私は次の情報を見たログで

sc.cassandraTable("my_keyspace", "my_table") 
    .select("value") 
    .where("key in ?", listOfKeys).collect() 

:私は次のコードを書いた。 "my_keyspace" FROM SELECT "値" の準備中に例外を「MY_TABLE "どこのtoken(" key ")>? AND token( "key")< =?そしてキー入力?それは私がからデータを読み取ることができますどのようにC * JIRAにhttps://issues.apache.org/jira/browse/CASSANDRA-6151

をステータスが修正されませんし、次のバグを報告した

に含める場合は、キー つ以上の関係で制限することはできません。フィルタリングを許可C * spark-cassandraコネクタを主キーで使用していますか?

カサンドラV。2.1.9 スパークV。1.6.1

答えて

1

は、私はあなたがこの目的のためにjoinWithCassandraTable方法を使用することができると思います。このような

何か:

val keys = sc.parallelize(listOfKeys) 
val rowsRDD = keys.map(Tuple1(_)) 
    .repartitionByCassandraReplica("my_keyspace","my_table") 
    .joinWithCassandraTable("my_keyspace","my_table") 

あなたは、コネクタのドキュメントthereにC *からの読み取りについての詳細を見つけることができます。

WHERE句でINを使用するのは通常、hereのようにはお勧めできません。

関連する問題