大象教程
首页
Spark
Hadoop
HDFS
MapReduce
Hive
Spark 教程
Spark 教程
Spark 基本架构及运行原理
Spark 安装(本地模式)
Spark 安装(集群模式)
Spark Shell 的使用
使用Intellij idea编写Spark应用程序(Scala+Maven)
使用Intellij idea编写Spark应用程序(Scala+SBT)
SparkContext
Spark Stage
Spark Executor
Spark RDD
Spark RDD 的创建方式
Spark RDD 缓存机制
Spark 键值对 RDD
Spark RDD 基本操作
Spark RDD 依赖关系图
Spark Map 和 FlatMap 的比较
Spark DAG
Spark 集群管理器
Spark spark-submit 提交应用程序
Spark 共享变量
Spark SQL
Spark SQL 教程
Spark SQL 数据类型
Spark SQL DataFrame
Spark SQL 数据源
Spark SQL SparkSession
Spark SQL DataSet
RDD、DataFrame和DataSet的区别
Spark Streaming
Spark Streaming 教程
Spark Streaming DStream
Spark Streaming 检查点(checkpoint)
Spark GraphX
Spark GraphX 教程
Spark GraphX 图操作
Spark GraphX 算法实例
PySpark 教程
PySpark 教程
PySpark 环境设置
PySpark SparkContext
PySpark RDD
PySpark 广播和累加器
PySpark SparkConf
PySpark SparkFiles
PySpark 存储级别
PySpark MLlib
PySpark 序列化器
#PySpark SparkContext SparkContext 是任何 spark 功能的入口点。当我们运行任何 Spark 应用程序时,会启动一个驱动程序,该程序具有 main 函数,并且您的 SparkContext 会在此处启动。然后,驱动程序在工作节点上的执行程序内运行操作。 SparkContext 使用 Py4J 启动一个JVM并创建一个JavaSparkContext. 默认情况下,PySpark 的 SparkContext 可用作 ```sc```,因此创建新的 SparkContext 将不起作用。 以下代码块包含 PySpark 类的详细信息和 SparkContext 可以采用的参数。 ```python class pyspark.SparkContext ( master = None, appName = None, sparkHome = None, pyFiles = None, environment = None, batchSize = 0, serializer = PickleSerializer(), conf = None, gateway = None, jsc = None, profiler_cls =
``` 参数说明 以下是 SparkContext 的参数。 - Master:它是它连接到的集群的 URL。 - appName:你的工作名称。 - sparkHome:Spark 安装目录。 - pyFiles:要发送到集群并添加到 PYTHONPATH 的 .zip 或 .py 文件。 - Environment:工作节点环境变量。 - batchSize:表示为单个 Java 对象的 Python 对象的数量。设置 1 禁用批处理,设置 0 以根据对象大小自动选择批处理大小,或设置 -1 使用无限批处理大小。 - Serializer:RDD 序列化器。 - Conf:L{SparkConf} 的一个对象,用于设置所有 Spark 属性。 - Gateway:使用现有网关和 JVM,否则初始化新 JVM。 - JSC:JavaSparkContext 实例。 - profiler_cls:用于进行分析的一类自定义 Profiler(默认为 ```pyspark.profiler.BasicProfiler```)。 在上述参数中,master和appname大多使用。任何 PySpark 程序的前两行如下所示 ```python from pyspark import SparkContext sc = SparkContext("local", "First App") ``` ##SparkContext 示例(PySpark Shell) 现在您已经对 SparkContext 有了足够的了解,让我们在 PySpark shell 上运行一个简单的示例。在此示例中,我们将计算在README.md文件。所以,假设一个文件有 5 行,并且 3 行有字符 'a',那么输出将是 ```Line with a: 3```,对字符“b”也是如此。 **Note**:在以下示例中,我们没有创建任何 SparkContext 对象,因为默认情况下,Spark 在 PySpark shell 启动时会自动创建名为 sc 的 SparkContext 对象。如果您尝试创建另一个 SparkContext 对象,您将收到以下错误:```"ValueError: Cannot run multiple SparkContexts at once"```。 ```python <<< logFile = "file:///home/hadoop/spark-2.1.0-bin-hadoop2.7/README.md" <<< logData = sc.textFile(logFile).cache() <<< numAs = logData.filter(lambda s: 'a' in s).count() <<< numBs = logData.filter(lambda s: 'b' in s).count() <<< print "Lines with a: %i, lines with b: %i" % (numAs, numBs) Lines with a: 62, lines with b: 30 ``` ##SparkContext 示例 让我们使用 Python 程序运行相同的示例。创建一个名为的 Python 文件firstapp.py并在该文件中输入以下代码。 ```python ----------------------------------------firstapp.py--------------------------------------- from pyspark import SparkContext logFile = "file:///home/hadoop/spark-2.1.0-bin-hadoop2.7/README.md" sc = SparkContext("local", "first app") logData = sc.textFile(logFile).cache() numAs = logData.filter(lambda s: 'a' in s).count() numBs = logData.filter(lambda s: 'b' in s).count() print "Lines with a: %i, lines with b: %i" % (numAs, numBs) ----------------------------------------firstapp.py--------------------------------------- ``` 然后我们将在终端中执行以下命令来运行这个 Python 文件。我们将得到与上面相同的输出。 ```bash $SPARK_HOME/bin/spark-submit firstapp.py Output: Lines with a: 62, lines with b: 30 ```
加我微信交流吧