spark快速大資料分析之學習記錄(五)

2021-09-24 17:21:36 字數 2478 閱讀 6181

題外話:這是乙個「**」,主要用於記錄並監督我每週的spark學習程序

【上週畢業典禮,放肆high~~~】

1、rdd基礎

rdd(risilient distributed dataset )彈性分布式資料集,簡單理解成不可變的分布式的元素集合

2.建立rdd【python】

建立rdd有兩種:外部讀取檔案和自定義傳遞集合給sparkcontext

shell命令:

lines=sc.parallelize(["pandas","i love pandas"])#傳遞集合

lines.count()

執行截圖:

shell命令:

lines=sc.textfile("readme.md")#讀取外部檔案

lines.count()

執行截圖:

2.rdd操作【python】

rdd操作分為兩種:轉化操作和行動操作,其中轉化操作是指由乙個rdd轉化為另乙個rdd,行動操作是指在rdd上所進行的具體的計算,得出具體的值。值得注意的是,轉化操作為惰性求值,我目前是這樣理解的,當你轉化時,該操作並不是立即發生,而是隨之後續行動操作指令的發出從而進行轉化操作。

shell命令:新建檔案並輸入日誌資訊

cd ~/桌面/py  #進入桌面資料夾py(自建)

touch log.txt #新建日誌檔案

sudo vim log.txt #向日誌檔案中輸入資訊

cat log.txt #檢視剛輸入的資訊

執行截圖:

shell命令

lines=sc.textfile("/home/hadoop/桌面/py/log.txt") #外部讀取檔案,建立rdd

errorlines=lines.filter(lambda x:"error" in x) #篩選出包含error的行,errorlines為rdd,轉化操作

errorlines.count() #統計行數,行動操作

warninglines=lines.filter(lambda x:"warning" in x) #篩選出包含warning的行,warninglines為rdd,轉化操作

warninglines.first() #求第一行,行動操作

badlinesrdd=errorlines.union(warninglines) #合併errorlines和warninglines,badlinesrdd為rdd,轉化操作

badlinesrdd.count() #統計行數 ,行動操作

執行截圖:

3.向spark傳遞函式【python】

python中有三種方式傳遞函式,lambda表示式、自定義區域性函式、頂層函式

shell命令:

word=lines.filter(lambda s:"error" in s) #lambda函式

word.first()

def containerror(s): #自定義區域性函式

return "error" in s

word.containerror(containerror)

class searchfunction():

def __init__(self,query):

return self.query

def __getmatchesmenberreference(self,rdd):

query=self.query #將需要的字段從物件中拿出來放到乙個區域性變數中

return rdd.filter(lambda x:query in x)

sf=searchfunction("error")

sf.getmatchesmemberreference(lines)

執行截圖:

spark快速大資料分析之學習記錄(四)

題外話 這是乙個 主要用於記錄並監督我每週的spark學習程序 一 初始化sparkcontext 基於python 1.新建乙個py檔案,用於存放python指令碼 備註 我在桌面建了乙個資料夾py,主要用來存放python指令碼 shell命令 sudo vim test.py 然後在test....

Spark快速大資料分析 RDD程式設計

rdd resilient distributed dataset 彈性分布式資料集 rdd就是乙個不可變的分布式物件集合。每個rdd都被分為多個分割槽,這些分割槽執行在集群中的不同節點。使用者可以通過2中方法建立rdd 1 讀取乙個外部資料集 sc.textfile test.txt 2 在驅動器...

Spark 大資料分析 介紹

spark的基本原理 executor worker task jobstage dagscheduler taskscheduler rdd一些疑問 一些結論 spark是乙個以複雜計算為核心的大資料分析框架,是mapreduce的 後繼者 具備高效性 通用性等特點。spark最初在2009年由加...