<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國際加速解決方案。 廣告
                # RDD 操作 RDDs 支持 2 種類型的操作:*轉換(transformations)* 從已經存在的數據集中創建一個新的數據集;*動作(actions)* 在數據集上進行計算之后返回一個值到驅動程序。例如,`map` 是一個轉換操作,它將每一個數據集元素傳遞給一個函數并且返回一個新的 RDD。另一方面,`reduce` 是一個動作,它使用相同的函數來聚合 RDD 的所有元素,并且將最終的結果返回到驅動程序(不過也有一個并行 `reduceByKey` 能返回一個分布式數據集)。 在 Spark 中,所有的轉換(transformations)都是惰性(lazy)的,它們不會馬上計算它們的結果。相反的,它們僅僅記錄轉換操作是應用到哪些基礎數據集(例如一個文件)上的。轉換僅僅在這個時候計算:當動作(action) 需要一個結果返回給驅動程序的時候。這個設計能夠讓 Spark 運行得更加高效。例如,我們可以實現:通過 `map` 創建一個新數據集在 `reduce` 中使用,并且僅僅返回 `reduce` 的結果給 driver,而不是整個大的映射過的數據集。 默認情況下,每一個轉換過的 RDD 會在每次執行動作(action)的時候重新計算一次。然而,你也可以使用 `persist` (或 `cache`)方法持久化(`persist`)一個 RDD 到內存中。在這個情況下,Spark 會在集群上保存相關的元素,在你下次查詢的時候會變得更快。在這里也同樣支持持久化 RDD 到磁盤,或在多個節點間復制。 ### 基礎 為了說明 RDD 基本知識,考慮下面的簡單程序: ~~~ val lines = sc.textFile("data.txt") val lineLengths = lines.map(s => s.length) val totalLength = lineLengths.reduce((a, b) => a + b) ~~~ 第一行是定義來自于外部文件的 RDD。這個數據集并沒有加載到內存或做其他的操作:`lines` 僅僅是一個指向文件的指針。第二行是定義 `lineLengths`,它是 `map` 轉換(transformation)的結果。同樣,`lineLengths` 由于懶惰模式也*沒有*立即計算。最后,我們執行 `reduce`,它是一個動作(action)。在這個地方,Spark 把計算分成多個任務(task),并且讓它們運行在多個機器上。每臺機器都運行自己的 map 部分和本地 reduce 部分。然后僅僅將結果返回給驅動程序。 如果我們想要再次使用 `lineLengths`,我們可以添加: ~~~ lineLengths.persist() ~~~ 在 `reduce` 之前,它會導致 `lineLengths` 在第一次計算完成之后保存到內存中。
                  <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>

                              哎呀哎呀视频在线观看