PySpark:用 Python 操作 Spark

使用 PySpark 的 Big Data 基礎

Upendra Devisetty

Science Analyst, CyVerse

PySpark 概觀

  • Apache Spark 以 Scala 撰寫

  • 為了支援在 Spark 使用 Python,社群推出 PySpark

  • 與 Scala 有相近的運算速度與效能

  • PySpark API 與 Pandas、Scikit-learn 類似

使用 PySpark 的 Big Data 基礎

什麼是 Spark shell?

  • 互動式環境,用來執行 Spark 作業

  • 適合快速互動式雛形開發

  • Spark shell 可與磁碟或記憶體中的資料互動

  • 三種 Spark shell:

    • Spark-shell(Scala)

    • PySpark-shell(Python)

    • SparkR(R)

使用 PySpark 的 Big Data 基礎

PySpark shell

  • PySpark shell 是以 Python 為基礎的命令列工具

  • 它讓你能操作 Spark 的資料結構

  • PySpark shell 支援連線到叢集

使用 PySpark 的 Big Data 基礎

認識 SparkContext

  • SparkContext 是進入 Spark 世界的入口

  • 入口點就是連線到 Spark 叢集的方式

  • 可把入口點想成進門的鑰匙

  • PySpark 預設提供名為 sc 的 SparkContext

1 https://www.datacamp.com/cheat-sheet/pyspark-cheat-sheet-spark-in-python
使用 PySpark 的 Big Data 基礎

檢視 SparkContext

  • Version: 取得 SparkContext 版本
sc.version
2.3.1
  • Python Version: 取得 SparkContext 的 Python 版本
sc.pythonVer
3.6
  • Master: 叢集的 URL,或在本機模式執行時的 local 字串
sc.master
local[*]
1 https://www.datacamp.com/cheat-sheet/pyspark-cheat-sheet-spark-in-python
使用 PySpark 的 Big Data 基礎

在 PySpark 載入資料

  • SparkContext 的 parallelize() 方法
rdd = sc.parallelize([1,2,3,4,5])
  • SparkContext 的 textFile() 方法
rdd2 = sc.textFile("test.txt")
1 https://www.datacamp.com/cheat-sheet/pyspark-cheat-sheet-spark-in-python
使用 PySpark 的 Big Data 基礎

一起來練習吧!

使用 PySpark 的 Big Data 基礎

Preparing Video For Download...