我是新手spark
和pyspark
.如果有人解释SparkContext
参数到底做了什么,我将不胜感激?我怎么能设置spark_context
python应用程序?
请参见此处:spark_context表示正在运行的spark集群管理器的接口.换句话说,您已经为spark定义了一个或多个运行环境(请参阅安装/初始化文档),详细说明要运行的节点等.您启动一个spark_context对象,其配置告诉它使用哪个环境,例如,应用程序名称.所有进一步的交互(例如加载数据)都作为上下文对象的方法发生.
对于简单的示例和测试,您可以"本地"运行spark集群,并跳过上面的大部分细节,例如,
./bin/pyspark --master local[4]
将启动一个解释器,其上下文已设置为在您自己的CPU上使用四个线程.
在独立应用程序中,要使用sparksubmit运行:
from pyspark import SparkContext sc = SparkContext("local", "Simple App")
Spark程序必须做的第一件事是创建一个SparkContext对象,它告诉Spark如何访问集群.要创建SparkContext,首先需要构建一个包含有关应用程序信息的SparkConf对象.
如果您正在运行pyspark即shell,则Spark会自动为您创建名称为SparkContext的对象sc
.但是如果你正在编写你的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