簡體   English   中英

Apache Spark 找不到類

[英]Apache Spark unable to find class

我正在嘗試使用apache sparkscala sbt開發獨立的應用程序,我一次又一次地收到此錯誤。

線程“main”中的異常 java.lang.NoClassDefFoundError: org/apache/spark/SparkConf at AuctionsApp$.main(AuctionsApp.scala:5)

這是代碼片段。

import org.apache.spark.SparkConf

object AuctionsApp {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("AuctionsApp")
    println(conf)
  }
}

build.sbt文件

name := "AuctionsApp"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.2.0-cdh5.3.2" % "provided"


resolvers += "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/"

我可以通過按命令導航到SparkConf文件並單擊import語句中的類名,這意味着它與其他代碼一起駐留在那里。

項目建設也很成功。

任何幫助表示贊賞。

附注。 使用IntelliJ Idea CE版本2016.3

請注意,在 SBT 中,您指定了provided ,這意味着當應用程序啟動時,假定包含類的 JAR 存在於類路徑中,而在本地調試時則不然。

為了解決這個問題,我們創建了一個額外的項目,專門用於在本地調試 Spark。 首先,我們在項目定義之外聲明對 Spark 的依賴:

lazy val sparkDeps = Seq(
  "org.apache.spark" %% "spark-core" % "1.2.0-cdh5.3.2"
)

然后我們創建依賴於我們的主項目的新項目並map Sparks 依賴項並將compile注釋添加到模塊中:

lazy val sparkProject = 
  project in file("spark-project")
  .settings(
   // Add your settings and such
  )

lazy val sparkDebugger = project in file("spark-debugger")
  .dependsOn(sparkProject)
  .settings(
    libraryDependencies ++= sparkDeps.map(_ % "compile")
)

當我們想在本地調試 Spark 時,我們從 Debug Configuration 窗口中的sparkDebugger項目加載我們的 main 方法:

Spark調試配置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM