spark命令行解析与找不到类scopt.OptionParser

问题一:解析spark-submit命令行参数的时候用到了第三方包scopt,该包需要引入

<dependency>
  <groupId>com.github.scopt</groupId>
  <artifactId>scopt_2.10</artifactId>
  <version>3.2.0</version>
</dependency>

,引入之后直接使用idea打包(build-build artifacts-rebuild)报错:找不到类scopt.OptionParser

然后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scala 中,可以使用 Scopt 库来解析命令行参数。Scopt 提供了一些默认的参数解析方法,但是有时候我们需要自定义一些参数的解析方法。下面是一个扩展解析参数的示例: ```scala import scopt.OptionParser case class Config(input: String = "", output: String = "", verbose: Boolean = false) object MyApp { def main(args: Array[String]): Unit = { val parser = new OptionParser[Config]("my-app") { opt[String]("input") .required() .action((value, config) => config.copy(input = value)) .text("input file path") opt[String]("output") .required() .action((value, config) => config.copy(output = value)) .text("output file path") opt[Unit]("verbose") .action((_, config) => config.copy(verbose = true)) .text("enable verbose output") } parser.parse(args, Config()) match { case Some(config) => // 执行你的代码,使用 config.input、config.output、config.verbose 等参数 case None => // 解析失败,输出错误信息 } } } ``` 在上面的示例中,我们定义了一个 Config 来存储命令行参数的值。然后,我们使用 ScoptOptionParser解析命令行参数。我们定义了三个参数:input、output 和 verbose。其中,input 和 output 是必须的参数,而 verbose 是可选的参数。我们使用 `opt` 方法来定义参数,使用 `action` 方法来指定参数的处理方法。在 `action` 方法中,我们可以使用 `config.copy` 方法来创建一个新的 Config 对象,并更新相应的参数值。最后,我们在 `parser.parse` 方法中解析命令行参数,并根据解析结果执行相应的代码。 需要注意的是,Scopt 提供了很多默认的参数解析方法,例如解析字符串、数字、布尔值等。如果你需要自定义一些特殊型的参数解析方法,可以使用 `opt[型]` 方法来定义参数,并使用 `action` 方法来指定参数的处理方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值