gpt4 book ai didi

java - 如何使用 spark-submit 将参数/属性传递给 Spark 作业

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:09 26 4
gpt4 key购买 nike

我正在运行一个使用 spark-submit 在 Java 中实现的 Spark 作业。我想将参数传递给这项工作 - 例如用于参数化 Spark 应用程序的 time-starttime-end 参数。

我尝试的是使用

--conf key=value
spark-submit 脚本的

选项,但是当我尝试使用

读取我的 Spark 作业中的参数时
sparkContext.getConf().get("key")

我得到一个异常(exception):

Exception in thread "main" java.util.NoSuchElementException: key

此外,当我使用 sparkContext.getConf().toDebugString() 时,我没有在输出中看到我的值。

进一步通知因为我想通过 Spark REST 服务提交我的 Spark 作业,所以我不能使用操作系统环境变量等。

有没有可能实现这个?

最佳答案

由于您想要使用您的自定义属性,您需要将您的属性放在 spark-submit 中的 application.jar 之后(如 spark 示例 [application- arguments] 应该是你的属性。--conf 应该是 spark 配置属性。

--conf: Arbitrary Spark configuration property in key=value format. For values that contain spaces wrap “key=value” in quotes (as shown).

./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # options
<application-jar> \
[application-arguments] <--- here our app arguments

所以当你这样做时:spark-submit .... app.jar key=valuemain 方法中你会得到 args[0] 作为 key=value

public static void main(String[] args) {
String firstArg = args[0]; //eq. to key=value
}

但是您想要使用键值对,您需要以某种方式解析您的app arguments

可以查看Apache Commons CLI library或其他选择。

关于java - 如何使用 spark-submit 将参数/属性传递给 Spark 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40535304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com