我正在使用Ubuntu,我正在尝试将Spark与Cassandra连接起来,我使用了以下步骤。
git clone https://github.com/datastax/spark-cassandra-connector.git
cd spark-cassandra-connector
./sbt/sbt assembly
./spark-shell --jars ~/spark/jars/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar
在此之后,我尝试了这个
Scala> sc.stop
Scala> import com.datastax.spark.connector._
Scala> org.apache.spark.SparkContext
Scala> import org.apache.spark.SparkContext._
Scala import org.apache.spark.SparkConf
Scala> val conf = new SparkConf(true).set("spark.cassandra.connection.host", "localhost")
Scala> val sc = new SparkContext(conf)
Scala> val test_spark_rdd = sc.cassandraTable("keyspace", "table")
我正在使用 spark 2.2.1,我的 Cassandra 是 apache-cassandra-2.2.12
当我输入此命令时
Scala> val test_spark_rdd = sc.cassandraTable("keyspace", "table")
它给了我这个错误。
我错误:加载类文件"CassandraConnector.class时检测到缺失或无效的依赖项。 无法访问类型登录包组织阿帕奇火花, 因为它(或其依赖项(丢失了。检查 的生成定义 缺少或冲突的依赖项。(使用 Ylog 类路径重新运行以查看有问题的类路径。 如果"CassandraConnector 类"是针对不兼容的 org apache spark 版本编译的,则完全重建可能会有所帮助。
找到不同的教程,但我无法解决我的问题,有人会给我建议。谢谢
不要下载 jar 文件并尝试使用它们。 相反,只需将 Spark 外壳指向 Maven 依赖项。
./bin/spark-shell --packages "com.datastax.spark:spark-cassandra-connector:2.0.7"
现在火花外壳将自动从 maven Central 下载正确的 jar 文件