PySpark (0) PySpark Hello world

Spark Hello worldk:

今天帶大家簡單看一下 Spark 的數據處理,雖然 Spark 兼容多種語言(Python, Scala, R, Java)但我只能示範 Python 的例子給大家看,因為我只會 Python...

先來看一下 $SPARK_HOME/bin 的結構:

$ cd $SPARK_HOME/bin
$ ls

其中我們目前比較在意的是 pyspark 和 spark-shell,它們分別是 Python 和 Scala 的 console。

beeline             pyspark2.cmd      spark-class.cmd   spark-shell.cmd
beeline.cmd         pyspark.cmd       sparkR            spark-sql
find-spark-home     run-example       sparkR2.cmd       spark-submit
load-spark-env.cmd  run-example.cmd   sparkR.cmd        spark-submit2.cmd
load-spark-env.sh   spark-class       spark-shell       spark-submit.cmd
pyspark             spark-class2.cmd  spark-shell2.cmd

pyspark:

我們來實驗看看用 pyspark 處理 $SPARK_HOME/RREADME.md:

$ cd $SPARK_HOME
$ pyspark
> lines = sc.textFile("README.md")
> lines.count()
> lines.first()

Spark 處理的對象是 RDD(Resilient Distributed Datasets 彈性分佈數據),將檔案或物件轉換成 RDD 的好處是 RDD 是個平行且分散的結構,上面的 lines 就是一個 RDD。所有的 RDD 要來自於 SparkContext 也就是 sc。之後我們可以在呼叫一些 RDD 的 methods(count, first...)。

這邊先記住一些專有名詞就好了,詳細的東西之後還會解釋。


Python 中使用 pyspark 套件:

$ python3
> from pyspark import SparkConf, SparkContext 
> conf = SparkConf().setMaster("local").setAppName("My App")
> sc = SparkContext(conf=conf) 

> lines = sc.textFile("README.md")
> lines.count()
> lines.first()

使用 pyspark 套件的這種作法我們稱為 standalone app,意思其實是我們可以不必仰賴 pyspark 的 shell 自己建立 SparkContext。

相對於 pyspark 的 shell ,Spark 還提供了一個 Scala 語言的 spark-shell,大家可以自己試試看,用起來感覺差不多但提供了使用者更多的選則。

留言

熱門文章