不多說,直接上干貨!
Spark 同時支持Scala、Python、Java 三種應用程序API編程接口和編程方式, 考慮到大數據處理的特性,一般會優先使用Scala進行編程,其次是Python,最后才是Java。 無論使用Scala、Python還是Java編程程序都需要遵循Spark 編程模型,考慮對Spark平台支持的有力程度來說,Spark 對Scala語言的支持是最好的,因為它有最豐富的和最易用的編程接口。
Spark 多語言編程的簡介
Spark 目前支持Scala、Python、Java三種編程語言。
Scala 作為Spark的原生語言,代碼優雅、簡潔而且功能完善,很多開發者都比較認可,它是業界廣泛使用的Spark程序開發語言。
Spark 也提供了Python的編程模型PySpark,使得Python可以作為Spark開發語言之一。 盡管現在PySpark還不能支持所有的Spark API,但是以后的支持度會越來越高。
Java 也可以作為Spark的開發語言之一,但是相對於前兩者而已,遜色了很多。但是Java8卻很好地適應了Spark的開發風格,大家有興趣可以自行了解。
Spark 多語言編程的誤解
spark對多語言的支持,並不是說spark可以操作各個語言寫的程序。 而是各種語言可以使用spark提供的編程模型來開發spark程序,並連接 spark集群來運行開發好的app。
前面我已經些了使用Scala、Java語言開發Spark程序,接下來我重點給大家寫此博文了解一下Python的編程模型。
Spark編程環境搭建(基於Intellij IDEA的Ultimate版本)(包含Java和Scala版的WordCount)(博主強烈推薦)
使用python來開發spark app
Spark 公開了Python的編程模型--PySpark,開發者可以通過PySpark很容易地開發Spark 應用程序。
但是Python API和Scala API並不完全相同:
1)Python是動態語言,RDD 可以持有不同類型的對象。
2)PySpark 目前並沒有支持全部的API,但核心部分已經全部支持。
3)在PySpark里,RDD支持和Scala一樣的方法,只不過這些方法是Python函數來實現的,返回的也是Python的集合類型;對於RDD方法中使用的短函數,則可以使用Python的Lambda語法實現。
不過,使用Python開發Spark應用程序也有很多優勢,比如說不需要編譯,使用方便,還可以與許多系統集成,特別是NoSQL大部分都提供了Python開發包。
接下來我帶大家一起使用Python語言開發Spark App。
● IDE
這里選擇pycharm
http://www.jetbrains.com/products.html#lang=python
● 安裝python
● 創建python項目
● 引入依賴的模塊
pyspark
py4j