我通过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'记录'表的唯一分区键。 我正在使用Cassandra v.2.0.13,Spark v.1.2.1和Spark-Cassandra Connector v.1.2.1
我在想是否有可能打开一个Cassandra会话以应用这些查询并仍然将'link_speed_records'作为SparkRDD。
答案 0 :(得分:1)
使用joinWithCassandra方法使用RDD键从Cassandra表中提取数据。问题中给出的方法相对来说非常昂贵,并且作为可并行化的请求也不能很好地起作用。