<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 一、 引入 Spark Spark 1.2.0 使用 Scala 2.10 寫應用程序,你需要使用一個兼容的 Scala 版本(例如:2.10.X)。寫 Spark 應用程序時,你需要添加 Spark 的 Maven 依賴,Spark 可以通過 Maven 中心倉庫來獲得: ``` <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.10.5</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>1.6.2</version> </dependency> ``` 另外,如果你希望訪問 HDFS 集群,你需要根據你的 HDFS 版本添加 `hadoop-client` 的依賴。一些公共的 HDFS 版本 tags 在[第三方發行頁面](https://spark.apache.org/docs/latest/hadoop-third-party-distributions.html)中被列出。 ``` groupId = org.apache.hadoop artifactId = hadoop-client version = <your-hdfs-version> ``` 最后,你需要導入一些 Spark 的類和隱式轉換到你的程序,添加下面的行就可以了: ```scala import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf ``` ## 二、初始化 Spark Spark 編程的第一步是需要創建一個 [SparkContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.SparkContext) 對象,用來告訴 Spark 如何訪問集群。在創建 `SparkContext` 之前,你需要構建一個 [SparkConf](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.SparkConf) 對象, SparkConf 對象包含了一些你應用程序的信息。 ```scala val conf = new SparkConf().setAppName(appName).setMaster(master) new SparkContext(conf) ``` `appName` 參數是你程序的名字,它會顯示在 cluster UI 上。`master` 是 [Spark, Mesos 或 YARN 集群的 URL](https://spark.apache.org/docs/latest/submitting-applications.html#master-urls),或運行在本地模式時,使用專用字符串 “local”。在實踐中,當應用程序運行在一個集群上時,你并不想要把 `master` 硬編碼到你的程序中,你可以[用 spark-submit 啟動你的應用程序](https://spark.apache.org/docs/latest/submitting-applications.html)的時候傳遞它。然而,你可以在本地測試和單元測試中使用 “local” 運行 Spark 進程。 ### 使用 Shell 在 Spark shell 中,有一個專有的 SparkContext 已經為你創建好。在變量中叫做 `sc`。你自己創建的 SparkContext 將無法工作。可以用 `--master` 參數來設置 SparkContext 要連接的集群,用 `--jars` 來設置需要添加到 classpath 中的 JAR 包,如果有多個 JAR 包使用**逗號**分割符連接它們。例如:在一個擁有 4 核的環境上運行 `bin/spark-shell`,使用: ``` $ ./bin/spark-shell --master local[4] ``` 或在 classpath 中添加 `code.jar`,使用: ``` $ ./bin/spark-shell --master local[4] --jars code.jar ``` 執行 `spark-shell --help` 獲取完整的選項列表。在這之后,調用 `spark-shell` 會比 [spark-submit 腳本](https://spark.apache.org/docs/latest/submitting-applications.html)更為普遍。 ## 三、并行集合 并行集合 (_Parallelized collections_) 的創建是通過在一個已有的集合(Scala `Seq`)上調用 SparkContext 的 `parallelize` 方法實現的。集合中的元素被復制到一個可并行操作的分布式數據集中。例如,這里演示了如何在一個包含 1 到 5 的數組中創建并行集合: ```scala val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data) ``` 一旦創建完成,這個分布式數據集(`distData`)就可以被并行操作。例如,我們可以調用 `distData.reduce((a, b) => a + b)` 將這個數組中的元素相加。我們以后再描述在分布式上的一些操作。 并行集合一個很重要的參數是切片數(_slices_),表示一個數據集切分的份數。Spark 會在集群上為每一個切片運行一個任務。你可以在集群上為每個 CPU 設置 2-4 個切片(slices)。正常情況下,Spark 會試著基于你的集群狀況自動地設置切片的數目。然而,你也可以通過 `parallelize` 的第二個參數手動地設置(例如:`sc.parallelize(data, 10)`)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看