List buildSparkSubmitArgs()

in client/client-spark-utils/src/main/java/com/aliyun/dataworks/client/utils/spark/command/SparkSubmitCommandBuilder.java [185:267]


    List<String> buildSparkSubmitArgs() {
        List<String> args = new ArrayList<>();
        OptionParser parser = new OptionParser(false);
        final boolean isSpecialCommand;

        // If the user args array is not empty, we need to parse it to detect exactly what
        // the user is trying to run, so that checks below are correct.
        if (!userArgs.isEmpty()) {
            parser.parse(userArgs);
            isSpecialCommand = parser.isSpecialCommand;
        } else {
            isSpecialCommand = this.isSpecialCommand;
        }

        if (!allowsMixedArguments && !isSpecialCommand) {
            checkArgument(appResource != null, "Missing application resource.");
        }

        if (verbose) {
            args.add(parser.VERBOSE);
        }

        if (master != null) {
            args.add(parser.MASTER);
            args.add(master);
        }

        if (deployMode != null) {
            args.add(parser.DEPLOY_MODE);
            args.add(deployMode);
        }

        if (appName != null) {
            args.add(parser.NAME);
            args.add(appName);
        }

        for (Map.Entry<String, String> e : conf.entrySet()) {
            args.add(parser.CONF);
            args.add(String.format("%s=%s", e.getKey(), e.getValue()));
        }

        if (propertiesFile != null) {
            args.add(parser.PROPERTIES_FILE);
            args.add(propertiesFile);
        }

        if (isExample) {
            jars.addAll(findExamplesJars());
        }

        if (!jars.isEmpty()) {
            args.add(parser.JARS);
            args.add(join(",", jars));
        }

        if (!files.isEmpty()) {
            args.add(parser.FILES);
            args.add(join(",", files));
        }

        if (!pyFiles.isEmpty()) {
            args.add(parser.PY_FILES);
            args.add(join(",", pyFiles));
        }

        if (isExample && !isSpecialCommand) {
            checkArgument(mainClass != null, "Missing example class name.");
        }

        if (mainClass != null) {
            args.add(parser.CLASS);
            args.add(mainClass);
        }

        args.addAll(parsedArgs);
        args.addAll(MapUtils.emptyIfNull(customArgs).entrySet().stream().map(e -> e.getKey() + " " + e.getValue()).collect(Collectors.toList()));
        if (appResource != null) {
            args.add(appResource);
        }
        args.addAll(appArgs);
        return args;
    }