懒惰的cassandra加载火花

时间:2016-03-02 23:40:18

标签: scala apache-spark cassandra

我想知道在Lazy模式下加载cassandra表然后使用where子句是否是一个好习惯。

例如:

Lazy val table = sparkContext.cassandraTable[Type](keyspace,tableName)

---代码的其他部分---

table.where("column = ?",param)

谢谢!

1 个答案:

答案 0 :(得分:3)

默认情况下,所有RDD都是懒惰的。在你召集行动之前,他们实际上不会做任何事情。所以不要添加延迟,因为这只会延迟围绕RDD创建元数据而不会实际影响执行。

实施例

val table = sparkContext.cassandraTable[Type](keyspace,tableName)
val tableWithWhere = table.where("x = 5")
val tableTransformed = table.map( x:Type => turnXIntoY(x) )
//nothing has happened in C* or Spark on executors yet
tableTransformed.collect // This causes spark to start doing work