1. <track id="5jh9g"><ruby id="5jh9g"></ruby></track>

        深圳幻海軟件技術有限公司歡迎您!

        幻海優品

        PySpark - SparkContext

        SparkContext是任何spark功能的入口點.當我們運行任何Spark應用程序時,會啟動一個驅動程序,它具有main函數,并且此處啟動了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).

        在上述參數中,<b主人和 appname 主要使用.任何PySpark程序的前兩行看起來如下所示 :

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

        SparkContext示例 -  PySpark Shell

        現在您已經了解了SparkContext,請告訴我們在PySpark shell上運行一個簡單的例子.在此示例中,我們將計算 README.md 文件中帶有字符"a"或"b"的行數.那么,讓我們說一個文件中有5行,3行有'a'字符,那么輸出將是 →  與a:3 對齊.字符'b'也是如此.

        注意 : 我們沒有在以下示例中創建任何SparkContext對象,因為默認情況下,當PySpark shell啟動時,Spark會自動創建名為sc的SparkContext對象.如果您嘗試創建另一個SparkContext對象,您將收到以下錯誤 -  "ValueError:無法一次運行多個SparkContexts".

        PySpark Shell


        <<< 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 SparkContextlogFile = "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.pyOutput: Lines with a: 62, lines with b: 30

        免責聲明:以上內容(如有圖片或視頻亦包括在內)有轉載其他網站資源,如有侵權請聯系刪除

        中文在线天堂中文

        1. <track id="5jh9g"><ruby id="5jh9g"></ruby></track>