2016-12-16 11 views
0

私はスカラーコードをコンパイルできません。依存関係のエラーが発生しています!依存関係が解決されていません

しかし、私は、既存のセットアップで正常に動作し、別のサンプルアプリケーションを持って、このコードは同じアーチで動作していない

:エラーログ

:sbt compile 
[info] Set current project to firstScalaScript (in build file:/home/abu/Current%20Workspace/) 
[info] Updating {file:/home/abu/Current%20Workspace/}current-workspace... 
[info] Resolving org.apache.spark#spark-core;2.0.1 ... 
[warn] module not found: org.apache.spark#spark-core;2.0.1 
[warn] ==== local: tried 
[warn] /home/abu/.ivy2/local/org.apache.spark/spark-core/2.0.1/ivys/ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/org/apache/spark/spark-core/2.0.1/spark-core-2.0.1.pom 
[warn] ==== Akka Repository: tried 
[warn] http://repo.akka.io/releases/org/apache/spark/spark-core/2.0.1/spark-core-2.0.1.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.apache.spark#spark-core;2.0.1: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] 
[warn] Note: Unresolved dependencies path: 

私のコード:

import scala.io.Source._ 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 
import org.apache.log4j.Logger 
import org.apache.log4j.Level 
import org.apache.spark.rdd.RDD 
import org.apache.hadoop.io.compress.GzipCodec 

object firstScalaScript{ 
    def main(args: Array[String]) 
    { 
     val sc=new SparkContext(new SparkConf()) 
     val rdd=sc.textFile("e.txt,r.txt").collect() 
     //rdd.saveAsTextFile("confirmshot.txt"); sc.stop() 
    } 
} 
+0

私のコード:輸入scala.io.Source._ インポートorg.apache.spark.SparkContext 輸入org.apache.spark.SparkContext._ 輸入org.apache.spark.SparkConf 輸入org.apache.log4j .Logger インポート{ DEFメイン(引数 インポートorg.apache.hadoop.io.compress.GzipCodec オブジェクトfirstScalaScriptをorg.apache.spark.rdd.RDDインポートorg.apache.log4j.Level:アレイ[String]){ \t val sc =新しいSparkContext(新しいSparkConf()) \t rdd = sc.textFile( "e.txt、r.txt")。 \t sc。ストップ() \t} } –

+2

あなたのコードブロックであなたの質問を編集(および適切な形式を設定)の代わりに、同じ目的のためにコメントを使用してください。 –

答えて

1

スパークアーチファクト(およびより多くのライブラリのもの)は、異なるバージョンのScala用にパッケージ化され、配布されます。それらを区別するために、Scalaバージョンがアーティファクト名の最後に追加されます。 spark-core_2.10またはspark-core_2.11です。

spark-coreの依存関係は、Scalaのバージョンが不足しているため、不完全です。

SBTを使用すると、使用しているScalaバージョンをビルド時にアーティファクト名に追加することができます。あなたは

"org.apache.spark" %% "spark-core" % "2.0.1" 

として依存関係を追加することができ、それは、このジャーに関するすべての詳細はMavenで見つけることができます

"org.apache.spark" % "spark-core_YOUR_SCALA_VERSION" % "2.0.1" 

に変換します。このページでは、MavenやGradleのような他のツールを使ってlibをインポートする方法に関する提案を見つけることができます。

0

Sparkの依存関係にはartifactIdの追加番号があります - Scalaのバージョン

これはSBTでスカラ2.11

ことがあるべきで、例えばspark-core_2.11すべきである:

// Scala version will be added by SBT while building 
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.2" 

または:

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.2" 

注:第二のバージョンは、ライブラリに使用すべきではないスカラを有します最初のものが自動的に適切なアーティファクトを選択するからです。 Scalaの依存関係以外でのみ使用

+0

私は2番目のことについて言及しませんが、それは悪い習慣です。 – Reactormonk

+0

@Reactormonkはい、それは悪い習慣ですが、どのように動作するかを示しています。後で私はそれに焦点を当てて答えを編集します:) –

+0

@Reactormonk変更::)これについてのあなたの提案をありがとう:) –

関連する問題