Как загрузить данные из таблицы Cassandra

#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()