joinWithCassandraTable() 是懒惰的吗?
Is joinWithCassandraTable() lazy?
我正在使用 Spark 1.2.1 spark-cassandra-connector :
//join with cassandra
val rdd = some_array.map(x => SomeClass(x._1,x._2)).joinWithCassandraTable(keyspace, some_table)
println(timer, "Join")
//get only the jsons and create rdd temp table
val jsons = rdd.map(_._2.getString("this"))
val jsonSchemaRDD = sqlContext.jsonRDD(jsons)
jsonSchemaRDD.registerTempTable("this_json")
println(timer, "Map")
输出为:
Timer "Join"- 558 ms
Timer "Map"- 290284 ms
我猜 "joinWithCassandraTable()" 函数是惰性的,如果是这样,什么是启动它?
其实这里会触发评价的部分是sqlContext.jsonRDD
。由于您不提供 schema
它必须具体化 jsons
才能推断出它。
joinWithCassandraTable
有点相似,因为它必须连接到 Cassandra 并获取所需的元数据。参见
我正在使用 Spark 1.2.1 spark-cassandra-connector :
//join with cassandra
val rdd = some_array.map(x => SomeClass(x._1,x._2)).joinWithCassandraTable(keyspace, some_table)
println(timer, "Join")
//get only the jsons and create rdd temp table
val jsons = rdd.map(_._2.getString("this"))
val jsonSchemaRDD = sqlContext.jsonRDD(jsons)
jsonSchemaRDD.registerTempTable("this_json")
println(timer, "Map")
输出为:
Timer "Join"- 558 ms
Timer "Map"- 290284 ms
我猜 "joinWithCassandraTable()" 函数是惰性的,如果是这样,什么是启动它?
其实这里会触发评价的部分是sqlContext.jsonRDD
。由于您不提供 schema
它必须具体化 jsons
才能推断出它。
joinWithCassandraTable
有点相似,因为它必须连接到 Cassandra 并获取所需的元数据。参见