【问题标题】:DataStax Cassandra - Scala Spark Application - SBT Build failureDataStax Cassandra - Scala Spark 应用程序 - SBT 构建失败
【发布时间】:2019-02-24 20:33:24
【问题描述】:

我有一个简单的演示 Scala 应用程序,它从文件中读取并输出到屏幕上。我正在尝试使用 sbt 构建此应用程序并将其提交给 DataStax Spark。 DataStax 文档中的 SBT 说明似乎不完整。 https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/spark/sparkJavaApi.html 由于缺少指向 datastax 存储库的链接,因此无法按原样使用。

搜索了一下,从https://github.com/datastax/SparkBuildExamples/blob/master/scala/sbt/dse/build.sbt 找到了一个样本 build.sbt 文件,它走得最远。

这个失败了:

[error] unresolved dependency: org.apache.directory.api#api-ldap-codec-standalone;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-extras-codec;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-net-mina;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-codec-core;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-extras-aci;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-extras-codec-api;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-ldap-model;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-asn1-ber;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-util;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-asn1-api;1.0.0.2.dse: not found
[error] unresolved dependency: org.apache.directory.api#api-i18n;1.0.0.2.dse: not found

build.sbt 的关键部分是:

scalaVersion := "2.11.8"

resolvers += Resolver.mavenLocal // for testing
resolvers += "DataStax Repo" at "https://repo.datastax.com/public-repos/"

val dseVersion = "6.0.0"

libraryDependencies += "com.datastax.dse" % "dse-spark-dependencies" % dseVersion % "provided" exclude(
    "org.slf4j", "log4j-over-slf4j", "org.apache.directory.api")

libraryDependencies ++= Seq(
  "junit" % "junit" % "4.12" % "test"
).map(_.excludeAll(
  ExclusionRule("org.slf4j","log4j-over-slf4j"),
  ExclusionRule("org.slf4j","slf4j-log4j12"))
)  // Excluded to allow for Cassandra to run embedded

似乎是一个损坏的依赖项。你能给些建议么。

【问题讨论】:

    标签: scala apache-spark sbt datastax-enterprise


    【解决方案1】:

    请尝试以下依赖

    scalaVersion := "2.11.8"
    
    libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "2.0.9"
    

    【讨论】:

    • 试过这个并没有得到之前的依赖错误。现在有一个不同的错误。 :( [信息] 将 1 个 Scala 源编译到 /project/scala_apps/SparkBuildExamples/SparkBuildExamples-master/scala/sbt/dse/target/scala-2.11/classes ... [错误] /project/scala_apps/SparkBuildExamples/SparkBuildExamples-master /scala/sbt/dse/src/main/scala/com/datastax/spark/example/WriteRead.scala:5:8: 对象 SaveMode 不是包 org.apache.spark.sql [错误] 导入 o​​rg 的成员。 apache.spark.sql.{SaveMode, SparkSession} [错误] ^
    • 我在github.com/datastax/SparkBuildExamples/tree/6.0.0 找到了一个早期版本的软件包,它与我的 dse 版本相关联,它编译时没有任何问题。这些版本之间的 build.sbt 文件没有差异,但它可以正常工作。可能是路径中的库已更新以捆绑这些 org.apache.directory.api 包。抱歉,不是 Scala 专家。
    猜你喜欢
    • 2016-02-04
    • 2015-03-13
    • 2017-03-08
    • 2016-12-31
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多