【问题标题】:setting SparkContext for pyspark为 pyspark 设置 SparkContext
【发布时间】:2014-07-28 13:25:39
【问题描述】:

我是sparkpyspark 的新手。如果有人解释SparkContext 参数的作用,我将不胜感激?我如何为 python 应用程序设置spark_context

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    请参阅here:spark_context 代表您与正在运行的 spark 集群管理器的接口。换句话说,您已经为 spark 定义了一个或多个运行环境(请参阅安装/初始化文档),详细说明要在其上运行的节点等。您启动一个 spark_context 对象,其配置告诉它要使用哪个环境,并且,例如,应用程序名称。所有进一步的交互,例如加载数据,都是作为上下文对象的方法发生的。

    对于简单的示例和测试,您可以“本地”运行 spark 集群,并跳过上面的大部分细节,例如,

    ./bin/pyspark --master local[4]
    

    将启动一个解释器,其上下文已设置为在您自己的 CPU 上使用四个线程。

    在独立应用中,使用 sparksubmit 运行:

    from pyspark import SparkContext
    sc = SparkContext("local", "Simple App")
    

    【讨论】:

    • 所以这个命令应该在shell中运行,对吧?不在 python 脚本中?
    • 正确,这是为了玩系统
    • 在python脚本中应该如何设置?集群 URL mesossparklocal 有什么区别?
    【解决方案2】:

    Spark 程序必须做的第一件事是创建一个 SparkContext 对象,它告诉 Spark 如何访问集群。要创建 SparkContext,您首先需要构建一个包含应用程序信息的 SparkConf 对象。

    如果您正在运行 pyspark,即 shell,Spark 会自动为您创建名为 sc 的 SparkContext 对象。但是如果你正在编写你的 python 程序,你必须做一些类似的事情

    from pyspark import SparkContext
    sc = SparkContext(appName = "test")
    

    任何配置都将进入此 spark 上下文对象,例如设置执行器内存或核心数。

    这些参数也可以在调用示例时从 shell 传递

    ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn-cluster \
    --num-executors 3 \
    --driver-memory 4g \
    --executor-memory 2g \
    --executor-cores 1
    lib/spark-examples*.jar \
    10
    

    要向 pyspark 传递参数,请使用类似这样的方法

    ./bin/pyspark --num-executors 17 --executor-cores 5 --executor-memory 8G
    

    【讨论】:

      【解决方案3】:

      SparkContext 对象是驱动程序。该对象协调您将在其上运行应用程序的集群上的进程。

      当您运行 PySpark shell 时,会使用变量 sc 自动创建默认 SparkContext 对象。

      如果您创建一个独立的应用程序,您将需要在脚本中初始化 SparkContext 对象,如下所示:

      sc = SparkContext("local", "My App")
      

      其中第一个参数是集群的 URL,第二个参数是应用的名称。

      我写了一篇文章,介绍了 PySpark 和 Apache 的基础知识,您可能会发现它很有用:https://programmathics.com/big-data/apache-spark/apache-installation-and-building-stand-alone-applications/

      免责声明:我是该网站的创建者。

      【讨论】:

        猜你喜欢
        • 2023-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多