Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 通过spark submit--class在作为.jar执行的应用程序中传递opt参数,并使用现有上下文_Scala_Apache Spark_Spark Submit - Fatal编程技术网

Scala 通过spark submit--class在作为.jar执行的应用程序中传递opt参数,并使用现有上下文

Scala 通过spark submit--class在作为.jar执行的应用程序中传递opt参数,并使用现有上下文,scala,apache-spark,spark-submit,Scala,Apache Spark,Spark Submit,我正在编写一个scala项目,我想让spark submit中的类可以作为jar类执行。(例如,spark提交——班级组织项目 我的问题如下: 我想使用用户在执行spark提交时设置的spark上下文配置,并选择性地覆盖一些参数,如应用程序名称。例如:spark提交--num executors 6--class org.project将在spark上下文中的number of exector配置字段中通过6 我希望能够向我的项目传递选项参数,如--inputFile或--verbose,而不干

我正在编写一个scala项目,我想让spark submit中的类可以作为jar类执行。(例如,
spark提交——班级组织项目

我的问题如下:

  • 我想使用用户在执行spark提交时设置的spark上下文配置,并选择性地覆盖一些参数,如应用程序名称。例如:
    spark提交--num executors 6--class org.project
    将在spark上下文中的number of exector配置字段中通过6

  • 我希望能够向我的项目传递选项参数,如
    --inputFile
    --verbose
    ,而不干扰spark参数(可能是避免名称重叠)
    示例:
    spark submit--num executors 6--class org.project--inputFile./data/summary.txt
    应将--inputFile./data/summary.txt传递给class
    org.project
    main
    方法的args输入

  • 我在这些问题上的进展如下:

  • 我运行
    val conf=new SparkConf().setAppName(“项目”);
    val sc=新的SparkContext(conf);
    在我的
    main
    方法中,
    但我不确定这是否如预期的那样

  • Sparks将这些可选参数视为spark submit的参数,并输出错误

  • 注1:我的java类
    project
    目前不继承任何其他类


    注:2:我对spark的世界还不熟悉,我无法从基本搜索中找到相关内容。

    您必须自己处理参数解析。这里我们使用
    Scopt

    spark提交作业时,它必须通过对象
    def main(args:Array[String])
    输入。获取这些arg并使用您喜爱的参数解析器解析它们,相应地设置sparkConf和SparkSession,然后启动进程

    Spark有这样的例子: