中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

2018-06-28    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
Apache Spark是處理和使用大數(shù)據(jù)最廣泛的框架之一,Python是數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等領(lǐng)域最廣泛使用的編程語言之一。如果想要獲得更棒的機(jī)器學(xué)習(xí)能力,為什么不將Spark和Python一起使用呢?

在國(guó)外,Apache Spark開發(fā)人員的平均年薪為110,000美元。毫無疑問,Spark在這個(gè)行業(yè)中被廣泛使用。由于其豐富的庫(kù)集,Python也被大多數(shù)數(shù)據(jù)科學(xué)家和分析專家使用。二者集成也并沒有那么困難,Spark用Scala語言開發(fā),這種語言與Java非常相似。它將程序代碼編譯為用于Spark大數(shù)據(jù)處理的JVM字節(jié)碼。為了集成Spark和Python,Apache Spark社區(qū)發(fā)布了PySpark。

Apache Spark是Apache Software Foundation開發(fā)的用于實(shí)時(shí)處理的開源集群計(jì)算框架。Spark提供了一個(gè)接口,用于編程具有隱式數(shù)據(jù)并行和容錯(cuò)功能的整個(gè)集群。

下面是Apache Spark的一些特性,它比其他框架更具優(yōu)勢(shì):

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

速度:比傳統(tǒng)的大型數(shù)據(jù)處理框架快100倍。

強(qiáng)大的緩存:簡(jiǎn)單的編程層提供強(qiáng)大的緩存和磁盤持久性功能。

部署:可以通過Mesos、Yarn或Spark自己的集群管理器進(jìn)行部署。

實(shí)時(shí):內(nèi)存計(jì)算,實(shí)時(shí)計(jì)算且低延遲。

Polyglot:這是該框架最重要的特性之一,因?yàn)樗梢栽赟cala,Java,Python和R中編程。

雖然Spark是在Scala中設(shè)計(jì)的,但它的速度比Python快10倍,但只有當(dāng)使用的內(nèi)核數(shù)量少時(shí),Scala才會(huì)體現(xiàn)出速度優(yōu)勢(shì)。由于現(xiàn)在大多數(shù)分析和處理都需要大量?jī)?nèi)核,因此Scala的性能優(yōu)勢(shì)并不大。

對(duì)于程序員來說,由于其語法和標(biāo)準(zhǔn)庫(kù)豐富,Python相對(duì)來說更容易學(xué)習(xí)。而且,它是一種動(dòng)態(tài)類型語言,這意味著RDD可以保存多種類型的對(duì)象。

盡管Scala擁有SparkMLlib,但它沒有足夠的庫(kù)和工具來實(shí)現(xiàn)機(jī)器學(xué)習(xí)和NLP。此外,Scala 缺乏數(shù)據(jù)可視化。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

使用Python設(shè)置Spark(PySpark)

首先要下載Spark并安裝,一旦你解壓縮了spark文件,安裝并將其添加到 .bashrc文件路徑中,你需要輸入source .bashrc

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

要打開PySpark shell,需要輸入命令./bin/pyspark

PySpark SparkContext和數(shù)據(jù)流

用Python來連接Spark,可以使用RD4s并通過庫(kù)Py4j來實(shí)現(xiàn)。PySpark Shell將Python API鏈接到Spark Core并初始化Spark Context。SparkContext是Spark應(yīng)用程序的核心。

Spark Context設(shè)置內(nèi)部服務(wù)并建立到Spark執(zhí)行環(huán)境的連接。

驅(qū)動(dòng)程序中的Spark Context對(duì)象協(xié)調(diào)所有分布式進(jìn)程并允許進(jìn)行資源分配。

集群管理器執(zhí)行程序,它們是具有邏輯的JVM進(jìn)程。

Spark Context對(duì)象將應(yīng)用程序發(fā)送給執(zhí)行者。

Spark Context在每個(gè)執(zhí)行器中執(zhí)行任務(wù)。

PySpark KDD用例

現(xiàn)在讓我們來看一個(gè)用例:數(shù)據(jù)來源為KDD'99 Cup(國(guó)際知識(shí)發(fā)現(xiàn)和數(shù)據(jù)挖掘工具競(jìng)賽,國(guó)內(nèi)也有類似的競(jìng)賽開放數(shù)據(jù)集,比如知乎)。這里我們將取數(shù)據(jù)集的一部分,因?yàn)樵紨?shù)據(jù)集太大。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

創(chuàng)建RDD:

現(xiàn)在我們可以使用這個(gè)文件來創(chuàng)建我們的RDD。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

過濾

假設(shè)我們要計(jì)算我們?cè)跀?shù)據(jù)集中有多少正常的相互作用。,可以按如下過濾我們的raw_data RDD。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

計(jì)數(shù):

現(xiàn)在我們可以計(jì)算出新RDD中有多少元素。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

輸出:

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

制圖:

在這種情況下,我們想要將數(shù)據(jù)文件作為CSV格式文件讀取。我們可以通過對(duì)RDD中的每個(gè)元素應(yīng)用lambda函數(shù)。如下所示,這里我們將使用map()和take()轉(zhuǎn)換。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

輸出:

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

拆分:

現(xiàn)在,我們希望將RDD中的每個(gè)元素都用作鍵值對(duì),其中鍵是標(biāo)記(例如正常值),值是表示CSV格式文件中行的整個(gè)元素列表。 我們可以按如下進(jìn)行,這里我們使用line.split()和map()。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

輸出:

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

收集:

使用collect()動(dòng)作,將RDD所有元素存入內(nèi)存。因此,使用大型RDD時(shí)必須小心使用。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

輸出:

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

當(dāng)然,這比我們之前的任何操作花費(fèi)的時(shí)間都要長(zhǎng)。每個(gè)具有RDD片段的Spark工作節(jié)點(diǎn)都必須進(jìn)行協(xié)調(diào),以便檢索其各部分內(nèi)容,然后將所有內(nèi)容集合到一起。

作為結(jié)合前面所有內(nèi)容的最后一個(gè)例子,我們希望收集所有常規(guī)交互作為鍵值對(duì)。

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

 

輸出:

 

機(jī)器學(xué)習(xí)實(shí)踐:如何將Spark與Python結(jié)合?

標(biāo)簽: 大數(shù)據(jù) 大數(shù)據(jù)處理 代碼 數(shù)據(jù)分析

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:京東AI研究院何曉冬:如何讓AI通過NLP技術(shù)理解人類?

下一篇:國(guó)家稅務(wù)總局天津市稅務(wù)局2018年度數(shù)據(jù)中心機(jī)房