返回首页
当前位置: 主页 > 编程语言 > Python教程 >

PySpark-SparkContext

时间:2020-03-28 11:10来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

SparkContext是任何Spark功能的入口点。当我们运行任何Spark应用程序时,将启动一个驱动程序,该驱动程序具有主要功能,并且您的SparkContext在此处启动。然后,驱动程序在工作者节点上的执行程序内部运行操作。

SparkContext使用Py4J启动JVM并创建JavaSparkContext默认情况下,PySpark的SparkContext作为'sc'可用,因此创建新的SparkContext是行不通的。

SparkContext

以下代码块包含PySpark类的详细信息和SparkContext可以采用的参数。

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 = <class 'pyspark.profiler.BasicProfiler'>
)

参量

以下是SparkContext的参数。

  • Master-这是它连接到的集群的URL。

  • appName-您的工作名称。

  • sparkHome -Spark安装目录。

  • pyFiles-要发送到集群并添加到PYTHONPATH的.zip或.py文件。

  • 环境 -工作节点环境变量。

  • batchSize-表示为单个Java对象的Python对象的数量。设置1禁用批处理,设置0以根据对象大小自动选择批处理大小,或设置-1以使用无限的批处理大小。

  • 串行器 -RDD串行器。

  • Conf -L {SparkConf}的对象,用于设置所有Spark属性。

  • 网关 -使用现有的网关和JVM,否则初始化新的JVM。

  • JSC -JavaSparkContext实例。

  • profiler_cls-用于执行概要分析的自定义Profiler类(默认为pyspark.profiler.BasicProfiler)。

在以上参数中,主要使用masterappname任何PySpark程序的前两行如下所示-

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

SparkContext示例– PySpark Shell

既然您对SparkContext足够了解,那么让我们在PySpark shell上运行一个简单的示例。在此示例中,我们将计算README.md文件中字符“ a”或“ b”的行因此,让我们说如果文件中有5行,而3行的字符是'a',那么输出将是→ Line with a:3字符“ b”将执行相同的操作。

 –在以下示例中,我们不会创建任何SparkContext对象,因为默认情况下,当PySpark shell启动时,Spark会自动创建名为sc的SparkContext对象。如果尝试创建另一个SparkContext对象,则会收到以下错误– “ ValueError:无法一次运行多个SparkContext”。

PySpark外壳

 

<<< 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文件。我们将获得与上述相同的输出。

$SPARK_HOME/bin/spark-submit firstapp.py
Output: Lines with a: 62, lines with b: 30
 上一页  打印页面

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • PySpark-SparkContext

    SparkContext是任何Spark功能的入口点。 当我们运行任何Spark应用程序时,将启动一个...

  • PySpark-简介

    在本章中,我们将熟悉Apache Spark是什么以及PySpark是如何开发的。 Spark 概述 Apach...

  • PySpark教程

    Apache Spark用Scala编程语言编写。 为了通过Spark支持Python,Apache Spark社区发布...

  • 基于日志的工件调查

    到目前为止,我们已经看到了如何使用Python在Windows中获取工件。 在本章中,让我们学...

  • Windows-II中的重要工件

    本章讨论Windows中一些更重要的工件及其使用Python的提取方法。 用户活动 具有 NTUSER...

  • 使用电子邮件进行调查

    前面的章节讨论了网络取证的重要性和过程以及所涉及的概念。 在本章中,让我们了解电...

猜你感兴趣