1

我通过 Spark Cassandra 连接器应用以下内容:

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

我在想是否可以打开 Cassandra 会话以应用这些查询并仍然将“link_speed_records”作为 SparkRDD。

4

1 回答 1

1

使用 joinWithCassandra 方法使用键的 RDD 从 Cassandra 表中提取数据。问题中给出的方法相对来说会非常昂贵,而且作为可并行化的请求也不能很好地发挥作用。

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

于 2015-07-12T09:18:08.523 回答