#scala #apache-spark
#scala #apache-spark
Вопрос:
Я работаю над версией Spark: 2.0.1 и Cassandra 3.9. Я хочу считывать данные из таблицы в cassandra с помощью CassandraSQLContext. Однако Spark 2.0 был изменен и использует SparkSession. Я пытаюсь использовать SparkSession, и мне повезло, ниже приведен мой код.
Не могли бы вы просмотреть и дать свой совет?
def main(args: Array[String], date_filter: String): Unit = {
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "localhost")
val sc = new SparkContext(conf)
val sparkSession = SparkSession.builder
.master("local")
.appName("my-spark-app")
.config(conf)
.getOrCreate()
import sparkSession.implicits._
import org.apache.spark.sql._
val rdd = sparkSession
.read
.format("org.apache.spark.sql.cassandra")
.options(Map("table" -> "users", "keyspace" -> "monita"))
.load()
println("count: " rdd.count())
}
Комментарии:
1. Пожалуйста, поместите свой код в блок кода, чтобы он был правильно отформатирован.
Ответ №1:
Ваш код выглядит нормально. Вам не нужно создавать SC. Вы можете установить свойства подключения Cassandra в конфигурации, как показано ниже.
val sparkSession = SparkSession
.builder
.master("local")
.appName("my-spark-app")
.config("spark.cassandra.connection.host", "127.0.0.1")
.config("spark.cassandra.connection.port", "9042")
.getOrCreate()