2016-01-18 2 views
3

I`m использования SPRAK 1.2.1 с spark-cassandra-connector:Is joinWithCassandraTable() лениво?

//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()" функция ленивая, если да, то что стрелять вверх?

+0

Это действительно старая версия Spark! –

+0

да, мне нужно обновить версию dse. – Rada

ответ

4

Фактически деталь, которая будет вызывать оценку здесь, sqlContext.jsonRDD. Поскольку вы не предоставляете schema, он должен материализовать jsons, чтобы иметь возможность сделать это.

joinWithCassandraTable - это похоже на то, что он должен подключиться к Кассандре и получить требуемые метаданные. См. Apache Spark: Driver (instead of just the Executors) tries to connect to Cassandra

+0

Ох ... Спасибо! – Rada