Spark教程
ApacheSpark是用于數(shù)據(jù)處理的最大開源項目之一。Spark是一款用于大數(shù)據(jù)和機器學(xué)習(xí)的快速通用統(tǒng)一分析引擎。它支持JAVA、SCALA、PYTHON、SQL和R等語言的高級API。它于2009年在加州大學(xué)伯克利分校實驗室(現(xiàn)在稱為AMPLab)開發(fā)。由于spark是用于數(shù)據(jù)處理的引擎,因此它可以構(gòu)建在Apache Hadoop、Apache Mesos、Kubernetes的基礎(chǔ)上,也可以構(gòu)建在AWS、Azure或GCP等云上,作為數(shù)據(jù)存儲。
ApacheSpark有自己的庫堆棧,如spark SQL、DataFrames、機器學(xué)習(xí)的spark MLlib、GraphX圖形計算、流媒體。該庫可以在同一個應(yīng)用程序中內(nèi)部組合。
為什么我們需要學(xué)習(xí)Spark
在當(dāng)今時代,數(shù)據(jù)是新的石油,但數(shù)據(jù)以不同的形式存在,如結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化。Apache Spark在批處理和流式數(shù)據(jù)方面實現(xiàn)了高性能。Netflix、亞馬遜、雅虎、facebook等大型互聯(lián)網(wǎng)公司已經(jīng)開始使用spark進行部署,并使用大約8000個節(jié)點的集群來存儲數(shù)PB的數(shù)據(jù)。隨著技術(shù)的日新月異,跟上同樣的Apache spark是必須的,下面是一些學(xué)習(xí)的理由:
- Spark的內(nèi)存速度是MapReduce的100倍,它可以輕松地與Hadoop生態(tài)系統(tǒng)集成,因此Spark在大公司和小公司中的使用正在增加。由于它是開源的,大多數(shù)組織已經(jīng)實現(xiàn)了spark</李>
 ;
- 由于數(shù)據(jù)來自移動應(yīng)用程序、網(wǎng)站、物聯(lián)網(wǎng)、傳感器等,這些龐大的數(shù)據(jù)不容易處理和處理。spark提供對這些數(shù)據(jù)的實時處理。Spark在Python和SQL語言中具有速度快且易于使用的特點,因此大多數(shù)機器學(xué)習(xí)工程師和數(shù)據(jù)科學(xué)家更喜歡Spark</李>
 ;
- Spark編程可以用Java、Python、Scala和R來完成,大多數(shù)專業(yè)人士或大學(xué)生都有相關(guān)知識。先驗知識有助于學(xué)習(xí)者用他們的已知語言創(chuàng)建spark應(yīng)用程序。此外,spark開發(fā)的scala由java支持。此外,用java為單個應(yīng)用程序編寫的100-200行代碼可以轉(zhuǎn)換為
 ;
- Spark professional在當(dāng)今的市場上有很高的需求,招聘人員準(zhǔn)備通過向Spark開發(fā)者提供高薪來改變一些規(guī)則。由于Apache spark專業(yè)人士的需求量很大,但供應(yīng)量卻很低,因此現(xiàn)在是進入這項技術(shù)以賺取高額利潤的正確時機</李>
Spark的應(yīng)用
Apache spark生態(tài)系統(tǒng)被業(yè)界用來構(gòu)建和運行快速大數(shù)據(jù)應(yīng)用程序,以下是sparks的一些應(yīng)用程序:
- 在電子商務(wù)行業(yè):
分析產(chǎn)品、客戶和店內(nèi)銷售的實時交易。這些信息可以傳遞給不同的機器學(xué)習(xí)算法,以建立推薦模型。該推薦模型可以根據(jù)客戶評論和產(chǎn)品評論開發(fā),行業(yè)可以形成新趨勢。
- 游戲行業(yè):
作為一個spark過程,實時數(shù)據(jù)程序員可以在一分鐘內(nèi)部署模型,以構(gòu)建最佳的游戲體驗。分析玩家及其行為,創(chuàng)造廣告和優(yōu)惠。此外,spark還可以用于構(gòu)建實時手機游戲分析。
- 金融服務(wù)業(yè):
Apache spark analysis可通過分析大量存檔日志來檢測欺詐和安全威脅,并將其與用戶帳戶和內(nèi)部信息等外部來源相結(jié)合,spark stack可幫助我們從這些數(shù)據(jù)中獲得一流的結(jié)果,以降低我們財務(wù)組合中的風(fēng)險
示例(字?jǐn)?shù)示例):
在本例中,我們計算文本文件中的字?jǐn)?shù):
輸出:
先決條件
為了學(xué)習(xí)ApacheSpark,程序員需要具備Scala函數(shù)式編程、Hadoop框架、Unix Shell腳本、RDBMS數(shù)據(jù)庫概念和Linux操作系統(tǒng)的先驗知識。除此之外,對Java的了解也是有用的。如果想使用ApachePySpark,那么最好了解python。
目標(biāo)受眾
Apache spark教程面向分析和數(shù)據(jù)工程師領(lǐng)域的專業(yè)人士。此外,希望通過學(xué)習(xí)各自領(lǐng)域的Spark框架(如ETL開發(fā)人員、Python開發(fā)人員)成為Spark開發(fā)人員的專業(yè)人士可以使用本教程在大數(shù)據(jù)領(lǐng)域進行轉(zhuǎn)換。