Spark 概念學習系列之Spark 多語言編程


 

 

  不多說,直接上干貨!

 

 

 

 

  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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM