自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機器學習實踐:如何將Spark與Python結(jié)合?

人工智能 機器學習 大數(shù)據(jù) Spark
Apache Spark是處理和使用大數(shù)據(jù)最廣泛的框架之一,Python是數(shù)據(jù)分析、機器學習等領域最廣泛使用的編程語言之一。如果想要獲得更棒的機器學習能力,為什么不將Spark和Python一起使用呢?

Apache Spark是處理和使用大數(shù)據(jù)最廣泛的框架之一,Python是數(shù)據(jù)分析、機器學習等領域最廣泛使用的編程語言之一。如果想要獲得更棒的機器學習能力,為什么不將Spark和Python一起使用呢?

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

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

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

 

機器學習實踐:如何將Spark與Python結(jié)合?
  • 速度:比傳統(tǒng)的大型數(shù)據(jù)處理框架快100倍。
  • 強大的緩存:簡單的編程層提供強大的緩存和磁盤持久性功能。
  • 部署:可以通過Mesos、Yarn或Spark自己的集群管理器進行部署。
  • 實時:內(nèi)存計算,實時計算且低延遲。
  • Polyglot:這是該框架最重要的特性之一,因為它可以在Scala,Java,Python和R中編程。

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

對于程序員來說,由于其語法和標準庫豐富,Python相對來說更容易學習。而且,它是一種動態(tài)類型語言,這意味著RDD可以保存多種類型的對象。

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

 

[[233829]]

使用Python設置Spark(PySpark)

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

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

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

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

  1. Spark Context設置內(nèi)部服務并建立到Spark執(zhí)行環(huán)境的連接。
  2. 驅(qū)動程序中的Spark Context對象協(xié)調(diào)所有分布式進程并允許進行資源分配。
  3. 集群管理器執(zhí)行程序,它們是具有邏輯的JVM進程。
  4. Spark Context對象將應用程序發(fā)送給執(zhí)行者。
  5. Spark Context在每個執(zhí)行器中執(zhí)行任務。

PySpark KDD用例

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

創(chuàng)建RDD:

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

過濾

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

計數(shù):

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

輸出:

 

機器學習實踐:如何將Spark與Python結(jié)合?

制圖:

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

輸出:

 

機器學習實踐:如何將Spark與Python結(jié)合?

拆分:

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

輸出:

 

機器學習實踐:如何將Spark與Python結(jié)合?

收集:

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

輸出:

 

機器學習實踐:如何將Spark與Python結(jié)合?

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

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

 

機器學習實踐:如何將Spark與Python結(jié)合?

輸出:

 

機器學習實踐:如何將Spark與Python結(jié)合?
責任編輯:未麗燕 來源: it168網(wǎng)站原創(chuàng)
相關(guān)推薦

2022-10-08 00:35:48

gRPCGuice服務器

2019-12-17 16:14:24

機器學習設計算法

2017-08-22 15:35:12

2022-04-23 10:55:51

存儲AI/ML對象鎖定

2017-04-13 13:30:56

SparkSpark MLlib機器學習

2023-12-29 07:04:28

Go項目Docker編寫

2025-02-17 08:00:00

機器學習開發(fā)Docker

2016-10-31 10:34:13

GPU機器學習

2011-05-04 09:32:16

2020-06-10 07:46:39

機器學習預測性維護工業(yè)物聯(lián)網(wǎng)

2025-02-27 12:07:46

2018-01-08 09:09:46

機器學習模型NET

2017-07-26 17:25:22

機器學習SparkAPI

2021-02-26 10:24:49

機器學習人工智能程序

2024-01-18 08:15:05

AIGC知識圖譜大模型

2021-12-09 09:53:00

人工智能機器學習網(wǎng)絡安全

2022-08-19 08:00:00

OPA集成Kubernetes集群

2020-03-11 18:16:04

物聯(lián)網(wǎng)農(nóng)業(yè)LPWAN

2018-07-19 10:35:12

機器學習數(shù)據(jù)平臺

2021-01-26 09:46:59

PythonStacking機器學習
點贊
收藏

51CTO技術(shù)棧公眾號