2016-09-25 2 views
0

に、単純なCSVファイルは次のようになります試してみて、解析する私のコードを見つけることができません。私のpom.xmlは次のようになります:Apacheのスパークは、クラスCSVReader

<dependencies> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>1.1.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.opencsv</groupId> 
     <artifactId>opencsv</artifactId> 
     <version>3.8</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

どうすれば修正できますか?

+0

は、うーん...あなたは、実行時に必要なライブラリを_provide_ましたか? – Seelenvirtuose

+0

サイドノート - Spark 1.1.0は非常に古いバージョンです。現在のバージョンは2.0.0です。 –

+0

@Seelenvirtuose私はそれに答える方法がわかりません。私はMavenを初めて使っています。私の理解では、 '提供された'は、作成される最終的なJARと共にJARをダウンロードして出荷させることです。 :/ –

答えて

1

あなたのコードは、他のプロジェクトに依存している場合、あなたは、Spark クラスタにコードを配布するために、あなたのアプリケーションと一緒にそれらを パッケージ化する必要があります。これを行うには、コードとその依存関係 を含むアセンブリjar(または "uber" jar)を作成します。 sbtとMavenの両方にアセンブリ プラグインがあります。アセンブリのjarを作成するときは、sparkとHadoopを として指定してください。実行時にクラスタマネージャによって提供される であるため、これらをバンドルする必要はありません。
出典:http://spark.apache.org/docs/latest/submitting-applications.html

それはJARにプロジェクトをパッケージ化する際にMavenの依存関係のJARを出荷していません。依存関係JARを一緒に出荷するために、私はMaven Shadeプラグインを追加しました。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <filters> 
      <filter> 
       <artifact>*:*</artifact> 
       <excludes> 
        <exclude>META-INF/*.SF</exclude> 
        <exclude>META-INF/*.DSA</exclude> 
        <exclude>META-INF/*.RSA</exclude> 
       </excludes> 
      </filter> 
     </filters> 
     <finalName>${project.artifactId}-${project.version}</finalName> 
    </configuration> 
</plugin> 

も参照してください。How to make it easier to deploy my Jar to Spark Cluster in standalone mode?

関連する問題