Please enable JavaScript.
Coggle requires JavaScript to display documents.
Spark (Actions操作 (reduce() 對RDD中的itmes做聚合 (貪食蛇操作), cache() (在第一個action…
Spark
Actions操作
take(n)
.first()
count()
top(n)
.collect()
reduce() 對RDD中的itmes做聚合
貪食蛇操作
cache()
在第一個action 激活之後,不要把結果釋放掉,接著做運算
使用原因
更有效的處理內存及大量數據
Hadoop 會盡量去用硬盤資源
不適合做機器學習
更適合做海量機器學習
書寫精簡
RDD間的操作
rdd1.intersection(rdd2)
rdd1.union(rdd2)
rdd1.substract(rdd2)
rdd1.cartesian(rdd2)
學習理念
先了解MapReduce的理念,再用Spark工具實現,流程無法自動化
1个driver和若干个executor(在各个节点上)
通過SparkContext(接口)連接Spark集群
創建RDD,需要先有SparkContext
累加器(accumlator)
廣播變量
存儲方式
RDD彈性分布是數據集
所有處理和計算任務都會被組織成RDD的轉和動作
高版本還有其他的數據載體型態
邏輯型態
實際上是分配在許多不同的節點,但使用上看成使用一個大文件
被劃分在不同節點上,進行並行處理的數據集合
可以將RDD持久話內存,有效地在併行操作中復用
初始化RDD方法
Way2.直接把文本讀到RDD
每一行會被當作一個item
路徑
默認路徑-HDFS
本地要給全局路徑file://
讀取一個資料夾檔案
.wholeTextFiles
行如(文件名,文件所有内容)的元组
Way1.內存已有一份序列數據(EX:Python - list)
sc.parallelize
意義
單台電腦處理很慢即使能存儲東西很多
RDD transformation
類似list comprehension的過程
通過一系列的變換得到新的RDD
常見的操作
filter()
distinct() 去重
flatMap() 一進多出,平鋪開來
sample()
map() 一進一出
sortBy() 進行排序
collect() 顯示處理後資料
count()
可以串接, 連續處理
教材
1.PySpark_Cheat_Sheet_Python
2.PySpark_SQL_Cheat_Sheet_Python
特別注意
懶性計算
不會立即生效,等到要用到時才會重新組織
當調用action 才會進行
針對更複雜結構
前提-一定要是k-v對
groupByKey()
sortByKey()
reduceByKey()
countByKey()
collectAsMap()