为pyspark设置SparkContext

时间:2014-07-28 13:25:39

标签: python apache-spark

我是sparkpyspark的新手。如果有人解释SparkContext参数到底做了什么,我将不胜感激?我怎么能为python应用程序设置spark_context

3 个答案:

答案 0 :(得分:19)

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

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

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

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

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

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

答案 1 :(得分:11)

  

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

答案 2 :(得分:2)

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/

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