1

Cassandra 2.1、Spark 1.1、spark-cassandra-connector 1.1

キーと値のペアの非常に背の高い列ファミリがあります。また、そのCFから選択したいキーのRDDもあります

私がやりたいことは次のようなものです

import com.datastax.spark.connector._                                    

val ids = ...

val pairs = id.map{
 id => sc.cassandraTable("cf", "tallTable")
        .select("the_key", "the_val")
        .where("the_key = ?", id)
 }

ただし、マップ内の Spark コンテキストを参照すると、NPE が発生します。完全な tallTable から RDD を作成し、ID に結合することもできますが、これは非常に遅い操作であり、回避したいと考えています。

このように Cassandra から一連のキーを読み取る方法はありますか?

4

1 に答える 1

1

spark-cassandra コネクタは、鍵の RDD と Cassandra テーブルの結合を実現するための最適化された方法を提供します。

// Given a collection of ids
val ids = Seq(id,...)
// Make an RDD out of it
val idRdd = sc.parallelize(ids)
// join the ids with the cassandra table to obtain the data specific to those ids
val data = idRDD.joinWithCassandraTable("cf", "tallTable")

この機能は、spark-cassandra コネクタ v1.2 以降で利用できるため、アップグレードすることをお勧めします。

于 2015-07-03T23:33:12.713 に答える