连接到cassandra时火花超时

时间:2015-09-22 10:45:06

标签: scala cassandra apache-spark

我在cassandra集群中有很多数据,有2个节点机器和1个种子机器。我有一个火花大师和3个从属节点。每台机器都是8 GB的双核机器。因此,如果我的数据大约为2,00,000,并且当我在数据帧上执行rdd.count时,则需要花费大量时间,有时甚至会超时。

val tabledf = _sqlContext
 .read
 .format("org.apache.spark.sql.cassandra")
 .options(Map( "table" -> "events", "keyspace" -> "sams"))
 .load

tabledf.registerTempTable("tempdf");
val rdd = _sqlContext.sql("select * from tempdf");
val count = rdd.count.toInt

如何最大限度地减少这个计算时间? 我准备添加更多的工作机器,但它会有什么不同吗?

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是缓存输入DataFrame

_sqlContext.cacheTable("tempdf")

否则您必须传输所有数据以执行简单计数。