




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PySpark大數(shù)據(jù)分析1PySpark子模塊目錄PySpark簡介2Python在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域擁有豐富的庫資源,如NumPy、SciPy、Pandas和Scikit-learn等,因此成為數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師處理和分析數(shù)據(jù)的熱門語言。Spark是目前處理和使用大數(shù)據(jù)的主流框架之一,其設(shè)計初衷是加速迭代計算,非常適合大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等應(yīng)用場景。為了兼顧Spark和Python的優(yōu)勢,ApacheSpark開源社區(qū)推出了PySpark。與原生Python相比,PySpark的優(yōu)勢在于其能夠運(yùn)行在集群上,而不僅僅局限于單機(jī)環(huán)境。因此,當(dāng)數(shù)據(jù)量過大以至于單機(jī)無法處理,或數(shù)據(jù)存儲在HDFS中,或需要進(jìn)行分布式/并行計算時,可以選擇使用PySpark。PySpark簡介1PySpark子模塊目錄PySpark簡介2
PySpark組成一組公共類處理結(jié)構(gòu)化數(shù)據(jù)的SQL模塊處理流數(shù)據(jù)的Streaming模塊機(jī)器學(xué)習(xí)的MLlib和ML兩個包PySpark子模塊PySpark核心類PySpark的核心類組成:公共類中的SparkContext、RDD;pyspark.streaming模塊中的StreamingContext、DStream;pyspark.sql模塊中的SparkSession、DataFramePySpark子模塊類型類名說明公共類pyspark.SparkContextPySpark編程的主要入口點公共類pyspark.RDDPySpark數(shù)據(jù)抽象Streaming模塊pyspark.streaming.StreamingContextPySpark流編程主要入口點Streaming模塊pyspark.streaming.DStreamPySpark流數(shù)據(jù)抽象SQL模塊pyspark.sql.SparkSessionPySparkSQL編程入口點SQL模塊pyspark.sql.DataFrame處理結(jié)構(gòu)化數(shù)據(jù)PySpark中11個公共類:Accumulator、Broadcast、RDD、SparkConf、SparkContext、SparkFiles、StorageLevel、TaskContext、RDDBarrier、BarrierTaskContext和BarrierTaskInfo。PySpark公共類類名說明Accumulator累加器,只允許增加值Broadcast廣播變量,可用于在任務(wù)之間復(fù)用RDDPySpark中基礎(chǔ)抽象SparkConf用于PySpark應(yīng)用程序的參數(shù)配置SparkContextPySpark應(yīng)用程序的編程入口點SparkFiles提供對文件進(jìn)行操作的相關(guān)功能StorageLevel用于數(shù)據(jù)存儲級別的設(shè)置TaskContext可以提供關(guān)于當(dāng)前運(yùn)行任務(wù)的信息RDDBarrier用屏障包裝RDD以實現(xiàn)屏障執(zhí)行BarrierTaskContext為屏障執(zhí)行提供額外信息和工具BarrierTaskInfo與屏障作業(yè)有關(guān)的信息PySpark主要公共類SparkContext詳解功能入口SparkContext是所有Spark功能的入口點,是運(yùn)行任何Spark應(yīng)用程序時必須初始化的對象。在編寫PySpark程序時,首先需要創(chuàng)建一個SparkContext實例,傳入一個SparkConf對象作為參數(shù)。通過這個SparkContext實例,可以提交作業(yè)、分發(fā)任務(wù),并進(jìn)行應(yīng)用的注冊。驅(qū)動程序當(dāng)運(yùn)行一個Spark應(yīng)用程序時,會啟動一個驅(qū)動程序,其中包含main函數(shù)。SparkContext會在驅(qū)動程序中啟動,并在工作節(jié)點上的executor中運(yùn)行操作。PySpark公共類連接集群:SparkContext表示與Spark集群的連接,它是創(chuàng)建RDD(彈性分布式數(shù)據(jù)集)和廣播變量的基礎(chǔ)。默認(rèn)實例:默認(rèn)情況下,PySpark將SparkContext實例命名為'sc',因此在大多數(shù)情況下,可以直接使用這個名字來訪問SparkContext的實例。數(shù)據(jù)操作提供了許多用于操作RDD的方法,例如map、filter、reduce等,使得對數(shù)據(jù)的操作變得簡單高效。支持廣播變量,可以被緩存在每臺機(jī)器上,以便在每個任務(wù)中快速訪問而無需通過網(wǎng)絡(luò)傳輸。PySpark公共類PySpark主要公共類SparkConf配置管理詳解
SparkConf是PySpark中用于設(shè)置和管理Spark應(yīng)用程序參數(shù)的關(guān)鍵類,允許開發(fā)者定制應(yīng)用程序行為,以適應(yīng)不同的需求和環(huán)境。創(chuàng)建SparkConf對象:通過調(diào)用SparkConf()構(gòu)造函數(shù)創(chuàng)建新的SparkConf對象。構(gòu)造函數(shù)接受可選的字典參數(shù)來指定默認(rèn)配置選項。加載系統(tǒng)屬性:SparkConf自動從Java系統(tǒng)屬性中加載所有以spark.為前綴的屬性。PySpark公共類設(shè)置和獲取配置選項:使用set(key,value)方法設(shè)置配置選項。使用get(key)方法獲取配置選項的值。嘗試獲取未設(shè)置的配置選項會拋出異常。優(yōu)先級規(guī)則:使用set()方法設(shè)置的配置值優(yōu)先于從系統(tǒng)屬性中加載的值。不可變性和傳遞性:創(chuàng)建后,SparkConf對象不可修改,確保配置在應(yīng)用程序生命周期中保持一致。創(chuàng)建SparkContext時需傳入SparkConf對象,以便初始化和運(yùn)行應(yīng)用程序。PySpark公共類PySpark主要公共類廣播變量與累加器詳解廣播變量和累加器是兩種用于并行處理的共享變量,它們在集群的每個節(jié)點上都有副本,可以用于執(zhí)行任務(wù)。廣播變量廣播變量主要用于在節(jié)點間高效分發(fā)大對象。當(dāng)需要在多個節(jié)點上使用相同的數(shù)據(jù)時,廣播變量可以將數(shù)據(jù)緩存在所有計算機(jī)上,而不是每次任務(wù)執(zhí)行時都發(fā)送數(shù)據(jù),這樣可以減少數(shù)據(jù)傳輸?shù)拈_銷。使用SparkContext.broadcast()方法創(chuàng)建廣播變量,并且在節(jié)點上的數(shù)據(jù)是不可變的,這意味著一旦廣播變量被創(chuàng)建,就不能在節(jié)點上修改它的值。PySpark公共類累加器累加器用于對信息進(jìn)行聚合,主要用于累計計數(shù)等場景。它們是可變的,可以在并行任務(wù)中進(jìn)行增量更新。使用SparkContext.accumulator()方法創(chuàng)建累加器,并且可以通過+=操作符進(jìn)行累加。需要注意的是,累加器的值只能在驅(qū)動程序中訪問,而不能在executor中訪問??偟膩碚f,廣播變量適合于在集群中分發(fā)大型對象以減少網(wǎng)絡(luò)通信,而累加器適合于進(jìn)行聚合操作,如計數(shù)或求和。這兩種共享變量的設(shè)計都是為了優(yōu)化并行計算過程中的數(shù)據(jù)共享和通信效率。PySpark公共類pyspark.sql模塊包含10個類,提供了類型、配置、DataFrame和許多其他功能的SQL函數(shù)和方法,PySparkSQL模塊相關(guān)類說明見右表。關(guān)于PySparkSQL模塊,在本書第3章中將進(jìn)行詳細(xì)介紹。PySparkSQL模塊類名.說明SparkSessionPySparkSQL編程的入口點Column用來表示DataFrame中的列Row用來表示DataFrame中的行GroupedData用于提供DataFrame中的匯總功能types定義DataFrame中的數(shù)據(jù)類型Functions提供豐富、常用的功能,如數(shù)學(xué)工具、日期計算、數(shù)據(jù)轉(zhuǎn)換等Window提供窗口函數(shù)功能DataFrame處理結(jié)構(gòu)化數(shù)據(jù)DataFrameNaFunctions用于處理DataFrame中的空值DataFrameStatFunctions用于統(tǒng)計、匯總DataFrame中的數(shù)據(jù)pyspark.streaming模塊包含3個主要的類:StreamingContext、DStream、StreamingListener,也特別提供針對Flume、Kafka、Kinesis流數(shù)據(jù)處理的類,但這里只對前3個類進(jìn)行說明,如下表所示。PySparkStreaming模塊將在本書第4章中做詳細(xì)介紹。PySparkStreaming模塊類名說明StreamingContext用于處理SparkStreaming應(yīng)用的入口DStreamSparkStreaming的基本抽象,DStream是一個連續(xù)的數(shù)據(jù)流StreamingListener對Streaming數(shù)據(jù)流事件進(jìn)行監(jiān)控和處理本章首先介紹了大數(shù)據(jù)分析的基本概念、流程和應(yīng)用場景,使讀者對大數(shù)據(jù)分析有了初步了解。然后,從大數(shù)據(jù)分析的角度引入了大數(shù)據(jù)技術(shù)體系,并重點介紹了Spark
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年開封運(yùn)輸從業(yè)資格證考試技巧
- 農(nóng)業(yè)設(shè)備供貨合同范本
- 勞動合同范本大全
- 2025年運(yùn)城貨運(yùn)上崗證模擬考試試題
- 專利侵權(quán)檢索合同范本
- 買賣廢鋼材合同范本
- 勞務(wù)合同范本無社保
- 臨泉教師合同范本
- 三人合作協(xié)議合同范本
- 交電產(chǎn)品銷售合同范例
- 編輯出版史考試重點整理
- (74)-17.3手性高效液相色譜法
- 淺談新生兒肺透明膜病的影像學(xué)診斷
- SMT失效模式分析PFMEA
- 國際貿(mào)易地理全套課件
- 家校共育-助孩子成長-家長會課件
- 叉形件工藝及車床夾具設(shè)計說明書
- GB/T 5916-2008產(chǎn)蛋后備雞、產(chǎn)蛋雞、肉用仔雞配合飼料
- 《中小學(xué)教育懲戒規(guī)則》(試用)試題及答案
- GB/T 23723.1-2009起重機(jī)安全使用第1部分:總則
- 安全測試工具、蹭網(wǎng)利器wifiphisher新增漢化版
評論
0/150
提交評論