我配置了spark 2.0 shell以与datastax cassandra连接器一起运行。Spark 2.0 Cassandra Scala Shell错误:NoClassDefFoundError
spark-shell --packages datastax:spark-cassandra-connector:1.5.1-s_2.11
当外壳
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连接器无法在类路径中找到某些类。您可以制作一个胖罐子(例如使用cassandra连接器运行'sbt assembly'),然后在Spark shell中使用此本地罐子。 – leshkin