【问题标题】:Is joinWithCassandraTable() lazy?joinWithCassandraTable() 是懒惰的吗?
【发布时间】:2019-07-19 02:35:15
【问题描述】:

我正在使用带有 spark-cassandra-connector 的 Spark 1.2.1:

//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()”函数是惰性的,如果是这样,什么是启动它?

【问题讨论】:

  • 那是 Spark 的真正旧版本!
  • 是的,我需要升级dse版本。

标签: apache-spark cassandra spark-cassandra-connector


【解决方案1】:

实际上这里会触发评估的部分是sqlContext.jsonRDD。由于您不提供schema,因此必须实现jsons 才能推断它。

joinWithCassandraTable 有点类似,因为它必须连接到 Cassandra 并获取所需的元数据。见Apache Spark: Driver (instead of just the Executors) tries to connect to Cassandra

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2011-03-24
    • 2019-04-07
    相关资源
    最近更新 更多