使用 Google Dataproc Spark 集群,我的 sbt 构建的程序集 jar 可以通过 SparkContext 访问 Cassandra。
但是,当我尝试通过 sqlContext 访问时,我得到了在远程集群上找不到的 spark sql 类——尽管我相信应该为 spark sql 配置 dataproc 集群。
java.lang.NoClassDefFoundError: org/apache/spark/sql/types/UTF8String$
at org.apache.spark.sql.cassandra.CassandraSQLRow$$anonfun$fromJavaDriverRow$1.apply$mcVI$sp(CassandraSQLRow.scala:50)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala
我的 sbt 文件:
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.5.0" % "provided",
"org.apache.spark" %% "spark-sql" % "1.5.0" % "provided",
"com.datastax.spark" %% "spark-cassandra-connector" % "1.4.0"
)
关闭 spark-sql 上的“提供”会使我陷入 jar 重复合并地狱。
感谢您的帮助。