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