首页 文章

使用spark cassandra连接器和SBT编译错误

提问于
浏览
5

我正在尝试让DataStax spark cassandra连接器正常工作 . 我在IntelliJ中创建了一个新的SBT项目,并添加了一个类 . 该类和我的sbt文件如下所示 . 创建spark上下文似乎有效,但是,当我取消注释我尝试创建cassandraTable的那一行时,我得到以下编译错误:

Error:scalac: bad symbolic reference. A signature in CassandraRow.class refers to term catalyst in package org.apache.spark.sql which is not available. It may be completely missing from the current classpath, or the version on the classpath might be incompatible with the version used when compiling CassandraRow.class.

Sbt对我来说是一种新的,我很感激任何帮助,以了解这个错误的含义(当然,如何解决它) .

name := "cassySpark1"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"

libraryDependencies += "com.datastax.spark" % "spark-cassandra-connector" % "1.1.0" withSources() withJavadoc()

libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector-java" % "1.1.0-alpha2" withSources() withJavadoc()

resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

而我的 class :

import org.apache.spark . {SparkConf,SparkContext} import com.datastax.spark.connector._ object HelloWorld {def main(args:Array [String]):Unit = {System.setProperty(“spark.cassandra.query .retry.count“,”1“)val conf = new SparkConf(true)
.set(“spark.cassandra.connection.host”,“cassandra-hostname”)
.set(“spark.cassandra.username”,“cassandra”)
.set(“spark.cassandra.password”,“cassandra”)

val sc = new SparkContext(“local”,“testingCassy”,conf)

// val foo = sc.cassandraTable(“keyspace name”,“table name”)val rdd = sc.parallelize(1 to 100)
val sum = rdd.reduce(_ _)

println(sum)}}

2 回答

  • 9

    您需要将 spark-sql 添加到依赖项列表

    libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.1.0"
    
  • 0

    在项目的 pom.xml 文件中添加库依赖项 . 看起来他们已经改变了新重构中的 Vector.class 依赖关系位置 .

相关问题