中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

機器學習實踐中如何將Spark與Python結合

發布時間:2021-12-17 11:57:52 來源:億速云 閱讀:270 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關機器學習實踐中如何將Spark與Python結合,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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

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

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

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

機器學習實踐中如何將Spark與Python結合

  ·速度:比傳統的大型數據處理框架快100倍。

  ·強大的緩存:簡單的編程層提供強大的緩存和磁盤持久性功能。

  ·部署:可以通過Mesos、Yarn或Spark自己的集群管理器進行部署。

  ·實時:內存計算,實時計算且低延遲。

  ·Polyglot:這是該框架最重要的特性之一,因為它可以在Scala,Java,Python和R中編程。

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

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

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

機器學習實踐中如何將Spark與Python結合

  使用Python設置Spark(PySpark)

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

機器學習實踐中如何將Spark與Python結合

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

  PySpark SparkContext和數據流

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

  1.Spark Context設置內部服務并建立到Spark執行環境的連接。

  2.驅動程序中的Spark Context對象協調所有分布式進程并允許進行資源分配。

  3.集群管理器執行程序,它們是具有邏輯的JVM進程。

  4.Spark Context對象將應用程序發送給執行者。

  5.Spark Context在每個執行器中執行任務。

  PySpark KDD用例

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

機器學習實踐中如何將Spark與Python結合

  創建RDD:

  現在我們可以使用這個文件來創建我們的RDD。

機器學習實踐中如何將Spark與Python結合

  過濾

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

機器學習實踐中如何將Spark與Python結合

  計數:

  現在我們可以計算出新RDD中有多少元素。

機器學習實踐中如何將Spark與Python結合

  輸出:

機器學習實踐中如何將Spark與Python結合

  制圖:

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

機器學習實踐中如何將Spark與Python結合

  輸出:

機器學習實踐中如何將Spark與Python結合

  拆分:

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

機器學習實踐中如何將Spark與Python結合

  輸出:

機器學習實踐中如何將Spark與Python結合

  收集:

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

機器學習實踐中如何將Spark與Python結合

  輸出:

機器學習實踐中如何將Spark與Python結合

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

  作為結合前面所有內容的最后一個例子,我們希望收集所有常規交互作為鍵值對。

機器學習實踐中如何將Spark與Python結合

  輸出:

機器學習實踐中如何將Spark與Python結合

以上就是機器學習實踐中如何將Spark與Python結合,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灯塔市| 罗田县| 黄冈市| 延川县| 清涧县| 义乌市| 阜城县| 菏泽市| 东乡族自治县| 永安市| 迁西县| 信阳市| 星座| 彭泽县| 盐源县| 长武县| 延庆县| 柳河县| 枣庄市| 华容县| 兴仁县| 施甸县| 永登县| 富阳市| 阿拉善右旗| 横峰县| 天长市| 天镇县| 中西区| 台前县| 喀喇沁旗| 龙里县| 连云港市| 九寨沟县| 长岛县| 白玉县| 吉林市| 曲水县| 神池县| 城口县| 昭通市|