需要传递额外的输入参数到spark作业进行验证。我知道在uber.jar之后,我们可以通过给空格来传递所有必需的参数。可以选择使用scala读取如下参数
spark-submit --jar uber.jar -Dtable.name=emp -Dfiltercondition=age,name
p4rjhz4m1#
-D 格式主要用于java属性,而不是cli参数。spark像其他java/scala程序一样,通过appmain方法接受参数。
-D
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[*]'
spark-submit --jar app.jar --className=my.app.App --master='local[*]'
1条答案
按热度按时间p4rjhz4m1#
-D
格式主要用于java属性,而不是cli参数。spark像其他java/scala程序一样,通过appmain方法接受参数。
那么
spark-submit --jar app.jar --className=my.app.App --master='local[*]'