【问题标题】:Lazy cassandra load with spark懒惰的卡桑德拉负载与火花
【发布时间】:2016-06-16 02:04:27
【问题描述】:
我想知道以惰性模式加载 cassandra 表是否是一个好习惯,然后使用 where 子句。
例如:
Lazy val table = sparkContext.cassandraTable[Type](keyspace,tableName)
---代码的其他部分---
table.where("column = ?",param)
谢谢!
【问题讨论】:
标签:
scala
apache-spark
cassandra
【解决方案1】:
默认情况下,所有 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