Ich habe eine typsichere Konfiguration application.conf
im Ordner src/main/resources
, der standardmäßig geladen wird.kann die Typesafe-Konfiguration auf der Commandline in spark nicht überschreiben
--conf spark.driver.extraJavaOptions=-DsomeValue="foo"
jedoch eine komplett neue Angabe, das heißt zwingende application.conf
Datei wie:
Ein einzelner Wert kann durch Angabe überschrieben werden
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
wird foo.conf
nicht geladen werden. Stattdessen wird die ursprüngliche Datei aus dem Ressourcenordner geladen. Die Tricks von: Using typesafe config with Spark on Yarn zu versuchen, hat auch nicht geholfen.
bearbeiten
Overriding multiple config values in Typesafe config when using an uberjar to deploy scheint die Antwort auf Ebene (ohne Funken) Programme. Die Frage bleibt, wie man das zum Funken bringt.
auch vorbei:
--conf spark.driver.extraClassPath="-Dconfig.resource=file:foo.conf"
--conf spark.driver.extraClassPath="-Dconfig.resource=foo.conf"
nicht meine Konfiguration über die Befehlszeile zu laden.
Obwohl, entsprechend der Dokumentation.
https://github.com/lightbend/config Für Anwendungen mit Anwendung {conf, JSON- Eigenschaften}, Systemeigenschaften können eine andere Konfiguration Quelle Kraft verwendet werden (zB von der Kommandozeile -Dconfig.file = path/to/config-Datei):
- config.resource spezifiziert eine Ressourcenname - keine Basisnamen, dh nicht application.conf Anwendung
- config.file ein Dateisystem-Pfad gibt, wieder sollte es die Erweiterung enthalten, kein Basisnamen sein
- config.url eine URL
Diese Systemeigenschaften einen Ersatz für Anwendung angeben angibt. {Conf, json, Eigenschaften}, keine Addition. Sie wirken sich nur auf Apps aus, die die Standardkonfiguration ConfigFactory.load() verwenden. In der Ersetzungskonfigurationsdatei können Sie die Include- "Anwendung" verwenden, um die ursprüngliche Standardkonfigurationsdatei einzuschließen; Nach der Include-Anweisung könnten Sie mit bestimmte Einstellungen überschreiben.
sollte es mit diesen Parametern möglich sein.