2017-01-03 14 views
1

私のプロジェクトにspark sqlを組み込みたいと思います。しかし、Mavenには多数の依存関係が含まれているため、jarファイルは膨大な量(120 MB以上)になります。巨大な依存関係を避けるスパークを含む

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.11</artifactId> 
    <version>2.1.0</version> 
</dependency> 

含まれる依存関係を最小限にする方法はありますか?

+0

基本的な質問:なぜSparkを他のアプリケーションに組み込みたいのですか?他のアプリケーションに組み込まれていないクラスタ上で実行する必要があります –

+0

私は本当にSparkに興味がありません。しかし、私はJavaのRデータフレームやPandasデータフレームのような何らかのデータフレームが必要で、コードはApacheまたはMITライセンスの下になければなりません。他に提案はありますか? – David

+0

データフレームをどのような作業にしたいのですか? –

答えて

1

ご使用の場合によって異なります。デフォルトでは、mavenには、uber jar内のspark-sqlのすべての依存関係が含まれています。あなたのケースに基づいて、それらのすべてを使用することはできません。したがって、依存関係からそれらを除外することができます。

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.11</artifactId> 
    <version>2.1.0</version> 
    <exclusions> 
     <!-- to remove jackson-databind from your uber jar --> 
     <exclusion> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
     </exclusions> 
    </exclusions> 
</dependency> 

しかし、アプリケーションでspark-sqlのほとんどの機能を使用している場合は役に立ちません。

多くの場合、スパークの依存関係は、アプリケーションを実行する環境(スタンドアロンモードを除く)によって提供されます。このような場合、spark-sql依存関係を提供された依存関係として次のようにフラグを立てることができます。

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.11</artifactId> 
    <version>2.1.0</version> 
    <scope>provided</scope> 
</dependency> 
関連する問題