Spark-Scala 与 Cassandra

Spark-Scala with Cassandra

我是 Spark、Scala 和 Cassandra 的初学者。我正在使用 ETL 编程。 现在我的项目 ETL POC 需要 Spark、Scala 和 Cassandra。我在 /usr/local/Cassandra/* 中用我的 ubuntu 系统配置了 Cassandra,然后我安装了 Spark 和 Scala。现在我正在使用 Scala 编辑器开始我的工作,我创建的只是在着陆位置加载一个文件,但在那之后我试图在 Scala 中连接 Cassandra,但我没有得到如何连接和处理目标数据的帮助数据库?.

谁能帮帮我这个方法对吗?或者我哪里错了?请帮助我了解如何通过上述组合实现此过程。

提前致谢!

您可以使用 spark-cassandra-connector

轻松执行此操作

通过阅读说明将 spark-cassandra-connector 添加到您的 pom 或 sbt,然后按此方式工作

将其导入您的文件

import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkConf
import org.apache.spark.sql.cassandra._

spark scala 文件

object SparkCassandraConnector {
def main(args: Array[String]) {

val conf = new SparkConf(true)
  .setAppName("UpdateCassandra")
  .setMaster("spark://spark:7077") // spark server
  .set("spark.cassandra.input.split.size_in_mb","67108864")
  .set("spark.cassandra.connection.host", "192.168.3.167") // cassandra host
  .set("spark.cassandra.auth.username", "cassandra")
  .set("spark.cassandra.auth.password", "cassandra")

// connecting with cassandra for spark and sql query
val spark = SparkSession.builder()
  .config(conf)
  .getOrCreate()

//    Load data from node publish table
val df = spark
  .read
  .cassandraFormat( "table_nmae",  "keyspace_name")
  .load()
 }
}

这适用于 spark 2.2 和 cassandra 2