0

私のアプリケーションは、Sparkを使用するJava Mavenプロジェクトです。ここではスタンフォードcoreNLPの依存関係を追加して、私のポンポンでのセクションがあります:なぜGoogle dataprocはPOMファイルに含まれていますが、coreNLP jarファイルを取得しませんか?

 <dependency> 
      <groupId>edu.stanford.nlp</groupId> 
      <artifactId>stanford-corenlp</artifactId> 
      <version>3.6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>edu.stanford.nlp</groupId> 
      <artifactId>stanford-corenlp</artifactId> 
      <version>3.6.0</version> 
      <classifier>models</classifier> 
     </dependency> 

私は次のエラーを取得する:

java.lang.NoClassDefFoundError: edu/stanford/nlp/pipeline/StanfordCoreNLP 

他の依存関係は、例えば、ありますスパーク、そしてdataprocはそれらをうまく引きます。今私はcoreNLPを追加し、それは私のラップトップで正常に動作しますが、Googleのdataprocで失敗します。

答えて

2

スパーククラスは、Datacroc環境では、基本配布の一部とみなされ、hadoop-clientなどの他のHadoop関連パッケージとともに「提供されます」。ベースディストリビューションに含まれていない他のライブラリは、Maven shade pluginを使用して "fatjar"の一部としてパッケージ化する必要があります。

これは、「提供された」環境がバージョン依存性に関してできるだけ反論されていないため、必要に応じてDataprocのバージョンの衝突を心配することなく独自のバージョンのcorenlpを用意することができるため、 corenlpライブラリの独自のforkしたバージョンを使用することさえできます。

+0

が理にかなっています。どうもありがとう! – Kai

関連する問題