2017-01-06 8 views
0

いくつかのモデルファイルを含むディレクトリがあり、何らかの理由でローカルファイルシステムのこれらのモデルファイルにアクセスする必要があります。糸のspark-submitの--archivesオプションを使用してzipファイルをアップロードする

もちろん、--filesのオプション​​は、各エグゼキュータの作業ディレクトリにファイルをアップロードでき、動作します。

しかし、私は私が

YARN-only: 
...... 
--archives ARCHIVES   Comma separated list of archives to be extracted into the working directory of each executor. 
...... 

を言われ--archivesオプションを考え出すのでしかし、私は実際にmodels.zipをアップロードするためにそれを使用する場合、私は糸がちょうどそこにそれを入れた私のファイルのディレクトリ構造を維持したいです抽出せずに、--filesと同じように。 to be extractedを誤解したことがありますか、このオプションを誤って使用しましたか?

答えて

8

自分自身で答えを見つけました。

YARNはアーカイブを抽出しますが、アーカイブと同じ名前の別のフォルダを追加します。明確にするために、models/model1models/models2models.zipに入力すると、models.zip/models/model1models.zip/models/model2でモデルにアクセスする必要があります。

また、#構文を使用すると、これをより美しくすることができます。

--filesと--archivesオプションは、ファイル名をHadoopと似ています。たとえば、--files localtest.txt#appSees.txtを指定すると、ローカルにlocaltest.txtという名前のファイルがHDFSにアップロードされますが、これはappSees.txtという名前でリンクされます。アプリケーションでは、 YARNで実行しているときに参照するappSees.txtという名前。

+0

これはちょうど救命救助者でした。それはどこに文書化されましたか? –

+1

助けてくれてうれしいです。私はこれに関する文書を見つけなかったので、これは 'spark-submit -h'に現れるはずだと思います。 –

+1

これも私を助けました。 stackoverflowでの最高の答え。ちなみに、#とエイリアスを付け加えていない限り、ファイルを抽出していないことが分かりました。たぶんそれはスパークか何か変わったバージョンでした。しかし、私はこれに苦労している人の#エイリアスを追加することをお勧めします。 –

関連する問題