如何从Cassandra表加载数据

时间:2016-10-11 10:56:18

标签: scala apache-spark

我正在开发Spark版本:2.0.1和Cassandra 3.9。我想通过CassandraSQLContext从cassandra中的表中读取数据。但是,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 个答案:

答案 0 :(得分:0)

您的代码看起来不错。您不需要创建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()