【发布时间】:2017-06-09 12:17:42
【问题描述】:
我正在尝试从 Spark 读取/写入 Cassandra 并使用这些依赖项:
"com.datastax.spark" % "spark-cassandra-connector-unshaded_2.11" % "2.0.0-M3",
"com.datastax.cassandra" % "cassandra-driver-core" % "3.0.0"
这是代码:
import com.datastax.spark.connector._
val sparkConf: SparkConf = new SparkConf().setAppName(appName)
.set("spark.cassandra.connection.host", hostname)
.set("spark.cassandra.auth.username",user)
.set("spark.cassandra.auth.password",password)
val spark = SparkSession.builder().config(sparkConf).getOrCreate()
val df = spark
.read
.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> s"$TABLE", "keyspace" -> s"$KEYSPACE"))
.load() // This Dataset will use a spark.cassandra.input.size of 128
但是在尝试提交火花时,我在上面的 df ...load() 行中得到了这个
Exception in thread "main" java.lang.NullPointerException
at com.datastax.driver.core.Cluster$Manager.close(Cluster.java:1516)
at com.datastax.driver.core.Cluster$Manager.access$200(Cluster.java:1237)
at com.datastax.driver.core.Cluster.closeAsync(Cluster.java:540)
at com.datastax.driver.core.Cluster.close(Cluster.java:551)
at com.datastax.spark.connector.cql.CassandraConnector$.com$datastax$spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:162)
at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$3.apply(CassandraConnector.scala:149)
at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$3.apply(CassandraConnector.scala:149)
at com.datastax.spark.connector.cql.RefCountedCache.createNewValueAndKeys(RefCountedCache.scala:31)
at com.datastax.spark.connector.cql.RefCountedCache.acquire(RefCountedCache.scala:56)
at com.datastax.spark.connector.cql.CassandraConnector.openSession(CassandraConnector.scala:82)
at com.datastax.spark.connector.cql.CassandraConnector.withSessionDo(CassandraConnector.scala:110)
at com.datastax.spark.connector.rdd.partitioner.dht.TokenFactory$.forSystemLocalPartitioner(TokenFactory.scala:98)
at org.apache.spark.sql.cassandra.CassandraSourceRelation$.apply(CassandraSourceRelation.scala:255)
at org.apache.spark.sql.cassandra.DefaultSource.createRelation(DefaultSource.scala:55)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:345)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:122)
【问题讨论】:
标签: apache-spark apache-spark-sql spark-cassandra-connector