跳至主要内容

Apache Spark Introduction

介紹

  • Spark 最初由加州大學柏克萊分校 (UCBerkeley)的 AMP 實驗室於 2009 年開發,是開源的分散式計算系統,旨在處理大規模數據處理和分析
  • 特點:
    1. 快速性能: Spark 提供了內存計算,可以在記憶體中保留中間數據,這樣可以大大加速運算速度。相比於傳統的 MapReduce 模型,Spark 的運行速度更快。
    2. 通用性: Spark 支援多種不同的工作負載,包括批處理、交互式查詢(Spark SQL)、流式處理(Spark Streaming)、機器學習(MLlib)和圖形處理(GraphX)。
    3. 易用性: Spark 提供了用於 Java、Scala、Python 和 R 等多種語言的 API,使得開發人員可以使用自己熟悉的語言進行數據處理。
    4. 分散式: Spark 可以在一個集群中進行分散式運算,將工作負載切分成多個任務,並在多台機器上同時執行,實現高效的分布式計算。
    5. 彈性: Spark 提供了彈性的數據處理能力,能夠處理結構化和非結構化的數據,並適應多種不同的數據處理需求。

RDD (Resilient Distributed Dataset)

RDD,即 Resilient Distributed Dataset(具有容錯性的分布式數據集),是 Apache Spark 中用於處理大規模數據的基本數據結構。

  1. 分布式數據集: RDD 是分布在多台計算機(節點)上的元素集合。這些元素可以是數字、對象、字符串等,RDD 使你能夠以分散的方式處理這些元素。

  2. 容錯性: RDD 具有容錯性,這意味著即使在計算過程中某個節點失敗,Spark 也能夠根據轉換操作重新計算,確保數據處理的完整性。

  3. 不可變性: RDD 是不可變的數據結構,這表示一旦創建了 RDD,就不能修改其內容。相反,你可以創建新的 RDD 來表示轉換後的數據。

  4. 惰性求值: RDD 具有惰性求值的特性,這意味著轉換操作不會立即執行,而是在行動(Action)操作觸發時一次性執行。這有助於優化計算流程。