2017-12-10 17 views
1

デフォルトでロードされるsrc/main/resourcesフォルダにタイプセーフな設定application.confがあります。cant override sparkのcommmandlineでタイプセーフな設定

--conf spark.driver.extraJavaOptions=-DsomeValue="foo" 

しかし、のような完全な新しい、すなわちオーバーライドapplication.confファイルを指定:

spark-submit \ 
    --class my.Class \ 
    --master "local[2]" \ 
    --files foo.conf \ 
    --conf spark.driver.extraClassPath="-Dconfig.file=file:foo.conf" \ 
    --conf spark.driver.extraJavaOptions=-Dvalue="abcd" \ 
    job.jar 

foo.confをロードに失敗します

単一の値を指定することで上書きすることができます。代わりに、resourcesフォルダの元のファイルがロードされます。 トリックを試してみると:Using typesafe config with Spark on Yarnも役に立たなかった。

Overriding multiple config values in Typesafe config when using an uberjar to deploy

編集プログラム(火花なし)プレーンのための答えであると思われます。 これをどのように発火させるかについては疑問が残っています。

も渡し:

--conf spark.driver.extraClassPath="-Dconfig.resource=file:foo.conf" 
--conf spark.driver.extraClassPath="-Dconfig.resource=foo.conf" 

は、コマンドラインからの私のコンフィギュレーションをロードするために失敗しました。ドキュメントに記載

が、:。 アプリケーションを使用してアプリケーションの場合

https://github.com/lightbend/config {CONF、JSON、プロパティ}、システム特性が に使用することができ、例えば、コマンドラインから(異なる設定ソースを強制 -Dconfig.file =パス/に/設定ファイル):

  • config.resourceは、リソース名を指定します - ないベース名を、すなわちapplication.confないアプリケーション
  • config.fileは、ファイルシステムパスを指定し、再度それは拡張子を含める必要があり、ベース名
  • config.urlは、これらのシステム特性は アプリケーションの置き換えを指定

URLを指定することがない。{CONF、JSON、プロパティ}であり、追加ではありません。デフォルトのConfigFactory.load()設定を使用しているアプリにのみ影響します( )。置換設定ファイル では、include "application"を使用して、元のデフォルト設定ファイル を含めることができます。インクルードステートメントの後に は、特定の設定をオーバーライドすることができます。

これらのパラメータで可能である必要があります。 spark.driver.extraClassPathからspark.driver.extraJavaOptionsに変更

答えて

1
spark-submit \ 
    --class my.Class \ 
    --master "local[2]" \ 
    --files foo.conf \ 
    --conf spark.driver.extraJavaOptions="-Dvalue='abcd' -Dconfig.file=foo.conf" \ 
    target/scala-2.11/jar-0.1-SNAPSHOT.jar 

トリック

をやっています
関連する問題