【发布时间】:2016-08-17 22:58:06
【问题描述】:
我已将 spark 2.0 shell 配置为使用 datastax cassandra 连接器运行。
spark-shell --packages datastax:spark-cassandra-connector:1.5.1-s_2.11
在 shell 中运行这个 sn-p 时
sc.stop
import org.apache.spark
import org.apache.spark._
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import com.datastax.spark
import com.datastax.spark._
import com.datastax.spark.connector
import com.datastax.spark.connector._
import com.datastax.spark.connector.cql
import com.datastax.spark.connector.cql._
import com.datastax.spark.connector.cql.CassandraConnector
import com.datastax.spark.connector.cql.CassandraConnector._
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "dbserver")
val sc = new SparkContext("spark://localhost:7077", "test", conf)
val table = sc.cassandraTable("keyspace", "users")
println(table.count)
println(table.first)
在这条线上
scala> val table = sc.cassandraTable("keyspace", "users")
收到此错误
java.lang.NoClassDefFoundError: com/datastax/spark/connector/cql/CassandraConnector$
at com.datastax.spark.connector.SparkContextFunctions.cassandraTable$default$3(SparkContextFunctions.scala:48)
... 62 elided
【问题讨论】:
-
我认为您的方法的问题是,cassandra 连接器在类路径上找不到某些类。您可以制作一个胖 jar(例如使用 cassandra 连接器运行“sbt 程序集”),然后在 Spark shell 中使用这个本地 jar。
标签: apache-spark cassandra spark-cassandra-connector