spark-submit 给jar包中的main函数传递参数
时间: 2023-07-05 14:04:08 浏览: 209
可以通过在 `spark-submit` 命令中使用 `--conf` 选项来传递参数给 Spark 应用程序中的 `main` 函数。具体步骤如下:
1. 在应用程序中定义一个 `SparkConf` 对象,并使用 `set` 方法设置应用程序所需的配置属性,例如:
```scala
val conf = new SparkConf()
.setAppName("MyApp")
.set("myProp", "myValue")
```
2. 在应用程序中使用 `get` 方法获取配置属性的值,例如:
```scala
val myPropValue = conf.get("myProp")
```
3. 在 `spark-submit` 命令中使用 `--conf` 选项传递配置属性的值,例如:
```bash
spark-submit --class com.example.MyApp \
--master yarn \
--conf spark.driver.extraJavaOptions="-DmyProp=myValue" \
my-app.jar
```
这里使用 `spark.driver.extraJavaOptions` 属性来传递参数,其中 `-DmyProp=myValue` 表示设置 `myProp` 属性的值为 `myValue`。这个参数会被传递给 `main` 函数的 `args` 参数。在应用程序中可以通过 `args(0)` 获取该参数的值。
如果需要传递多个参数,可以使用逗号分隔,例如:
```bash
--conf spark.driver.extraJavaOptions="-Dprop1=value1,-Dprop2=value2"
```
在应用程序中可以使用 `args` 数组获取所有传递的参数。
阅读全文