任何从命令获取非替代火花配置的方法

时间:2020-06-01 05:41:47

标签: java apache-spark

我正在运行以下spark命令

spark-submit --name Basic_class1 --class com.test2.Basic /Users/myusername/Downloads/project/spark/target/target-basic.jar

在主文件中

SparkSession sparkSession = SparkSession
                .builder()
                .appName("Basic")
                .master("local")
                .getOrCreate();

在这里,sparkSession会覆盖命令中提供的应用程序名称,并将其从“ Basic_class1”设置为“ Basic”。但是,有一个要求,在我的Dependecy文件中需要非重写参数“ Basic_class1”,但我无权访问它们设置应用程序名称的主文件。无论如何,在覆盖应用程序名称后是否可以获得该参数?

我知道我可以为此在属性文件中设置一些属性,但这需要在其他部分进行很多更改。因此,这就是为什么我想知道我们是否可以在代码本身中做到这一点。

我尝试过的方法

我查看了sparkContext.conf().getAll()返回的参数,但是appname也被覆盖。我也一直在研究spark上下文和配置中的其他方法,但无法获得任何结果。另外,也没有从互联网获得任何帮助。

编辑1

对于问题中提到的spark提交命令和sparksession,如果我们这样做

System.out.println(sparkSession.sparkContext()。appName());

然后显示“基本”。但是,如果我们将sparksession创建更改为

SparkSession sparkSession = SparkSession
                .builder()
//                .appName("Basic")
                .master("local")
                .getOrCreate();

然后

System.out.println(sparkSession.sparkContext()。appName());

将打印出“ Basic_class1”。因此,如果我未在代码中提供appName,则将打印--name中的内容。但是由于文件中存在appName,所以我想知道是否仍然可以获取--name?

0 个答案:

没有答案