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,大家可以自己試試看,用起來感覺差不多但提供了使用者更多的選則。
留言
張貼留言