在之前版本的Spark 1.6.1中,我正在使用spark Context,
创建Cassandra Contextimport org.apache.spark.{ Logging, SparkContext, SparkConf }
//config
val conf: org.apache.spark.SparkConf = new SparkConf(true)
.set("spark.cassandra.connection.host", CassandraHost)
.setAppName(getClass.getSimpleName)
lazy val sc = new SparkContext(conf)
val cassandraSqlCtx: org.apache.spark.sql.cassandra.CassandraSQLContext = new CassandraSQLContext(sc)
//Query using Cassandra context
cassandraSqlCtx.sql("select id from table ")
但是在Spark 2.0中,Spark Context被Spark会话取代,我怎样才能使用cassandra上下文?
答案 0 :(得分:5)
简答:你没有。它已被弃用并删除。
长答案:你不想。 HiveContext提供除目录之外的所有内容,并支持更广泛的SQL(HQL~)。在Spark 2.0中,这意味着您需要使用createOrReplaceTempView手动注册Cassandra表,直到实现ExternalCatalogue。
在Sql中,这看起来像
spark.sql("""CREATE TEMPORARY TABLE words
|USING org.apache.spark.sql.cassandra
|OPTIONS (
| table "words",
| keyspace "test")""".stripMargin)
在原始DF api中,它看起来像
spark
.read
.format("org.apache.spark.sql.cassandra")
.options(Map("keyspace" -> "test", "table" -> "words"))
.load
.createOrReplaceTempView("words")
这两个命令都会为SQL查询注册表“words”。