SparkSubmit可以在本地运行吗?

SparkSubmit can run locally?

当我 运行 下面的代码使用以下命令时

spark-submit prepiadstream_sample.py --master local[3] --name prepiadstream_sample --num-executors 5 --executor-memory 5g --driver-memory 5g

我发现配置在代码中打印出来 return 作为客户端的部署模式,尽管我 运行 它在 Spark 本地提交,不应该;不应该在命令行中使用配置

spark.master yarn

spark.submit.deployMode client

import os
from pyspark.sql import SparkSession
from pyspark.streaming import StreamingContext
import time
from pyspark.sql import Row


print("Creating Spark Session")

spark = SparkSession.builder\
    .getOrCreate()

<b> print(spark.sparkContext.getConf()) </b>

问题是参数的顺序。为了让我的应用程序读取我的参数,我应该在应用程序名称 之前传递所有 spark 配置参数 ,否则应用程序将使用 spark 的 默认配置 。命令需要发送如下:

spark-submit  --master local[3] --name applicationstream_sample \
--num-executors 5 --executor-memory 5g \
--driver-memory 5g applicationstream_sample.py

我们可以在以下 Spark Submitting 文档中找到正确编写命令的方法,并注意他们在 commanfd

中设置应用程序名称的位置

通常在生产模式下使用 spark-submit。提交您的 Spark 作业允许设置针对您的环境优化的特定选项。 --deploy-mode 用于指定 运行 spark 应用程序驱动程序的位置。如果在客户端模式下,驱动程序 运行 在本地,即您 运行 提交 spark 的机器。它应该用于调试目的。请注意,执行程序 运行 在不同的机器上。