如何在spark 2.0中使用Cassandra Context

问题描述 投票:1回答:1

在之前的Spark版本1.6.1中,我正在使用spark Context创建Cassandra Context,

import 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上下文?

apache-spark cassandra apache-spark-sql spark-cassandra-connector
1个回答
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”。

© www.soinside.com 2019 - 2024. All rights reserved.