1

Spark Cassandra Connector を介して以下を適用しています。

val links = sc.textFile("linksIDs.txt")
links.map( link_id => 
{ 
val link_speed_records = sc.cassandraTable[Double]("freeway","records").select("speed").where("link_id=?",link_id)
average = link_speed_records.mean().toDouble
})

私が常に変更する唯一のパラメータが「link_id」であることを考えると、上記の一連のクエリをより効率的に適用する方法があるかどうかを尋ねたいと思います。

「link_id」の値は、Cassandra の「records」テーブルの唯一のパーティション キーです。Cassandra v.2.0.13、Spark v.1.2.1、Spark-Cassandra Connector v.1.2.1 を使用しています。

これらのクエリを適用し、「link_speed_records」を SparkRDD として取得するために、Cassandra セッションを開くことが可能かどうかを考えていました。

4

1 に答える 1

1

joinWithCassandra メソッドを使用して、キーの RDD を使用して Cassandra テーブルからデータを引き出します。質問で指定されたメソッドは、比較的非常に高価であり、並列化可能なリクエストとしてもうまく機能しません。

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/2_loading.md#performing-effective-joins-with-cassandra-tables-since-12

于 2015-07-12T09:18:08.523 に答える