Спарк отправить, как прочитать пользовательские параметры ввода? - PullRequest
0 голосов
/ 17 января 2020

Нужно передать дополнительный входной параметр в искровое задание для проверки. Я знаю, что после uber.jar мы можем передать все необходимые параметры, указав пробел. Есть возможность читать, как показано ниже параметр, используя scala

spark-submit --jar uber.jar -Dtable.name=emp -Dfiltercondition=age,name

1 Ответ

1 голос
/ 18 января 2020
Формат

-D в основном для Java свойств, а не аргументов CLI.

Spark принимает аргументы через метод main вашего приложения, как и любая другая программа Java / Scala.

object App {

 def main(args: Array[String]): Unit = {
    val cmd: CommandLine = parseArg(args) // <-- here
    val master = cmd.getOptionValue("master", "local[*]") // parse args

    val spark = SparkSession.builder()
      .appName(App.getClass.getName)
      .master(master)
      .getOrCreate()
    ...
  }

  // Using Apache Commons CLI
  private def parseArg(args: Array[String]): CommandLine = {
    import org.apache.commons.cli._

    val options = new Options

    ...
  } 

Тогда spark-submit --jar app.jar --className=my.app.App --master='local[*]'

...