題外話:這是乙個「**」,主要用於記錄並監督我每週的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年由加...