大資料學習筆記(六) Spark的RDD

2021-08-11 10:40:49 字數 1235 閱讀 1486

建立

rdd是spark中的資料集,是唯讀的

rdd可以從集合,普通檔案系統,hdfs檔案系統中建立

scala建立rdd的方法

val lines1 = sc.parallelize(list("aa","bb"))

val lines2 = sc.textfile("file:///opt/spark/readme.md")

val lines3 = sc.textfile("hdfs:")

spark讀取hdfs檔案系統中的檔案需要將hadoop etc目錄下的core-site.xml和hdfs-site.xml拷貝到spark的conf目錄下。

spark1.6.3的scala api文件:

轉化操作

collect():輸出所有

take():輸出指定個數

foreach():將方法用到每乙個元素上

count():統計元素總量

countbyvalue():統計每乙個元素的數量

reduce():對每乙個元素進行逐個的合併

高階操作

pair rdd

key-value形式儲存

方便操作

有針對key-value的專用操作

reducebykey():按照key值合併value,返回與輸入的資料型別必須相同

combinebykey():按照key值合併value,允許返回與輸入的資料型別不同

repartitionandsortwithinpartitions():在repartition的同時進行sort操作,可提公升執行效率。

spark是分布式的計算框架,在單機程式開發的時候,使用static避免常量資源頻繁建立,在spark裡再用static就不行了。這個時候可以使用spark的broadcast機制。

建立廣播

final broadcastwordfilterbroadcast = sc.broadcast(wordfilterutil.getinstance());
在運算元中使用廣播

if (!wordfilterbroadcast.getvalue().isinblacklist(trimedword))
使用廣播時要注意,放入廣播中的物件要是可序列化的,否則會報錯

大資料學習筆記 spark資源排程

val works new hashset workinfo 儲存worker節點資源資訊 val waitingdrivers new arraybuffer driverinfo 儲存driver節點申請的資源資訊 val works new hashsetworkinfo works 集合採用...

大資料系列 Spark學習筆記之初識Spark

不完全對 因為我們只能使用spark core代替mr做離線計算,資料的儲存還是要依賴hdfs spark hadoop的組合,才是未來大資料領域最熱門的組合,也是最有前景的組合!容易使用 一站式解決方案 可以執行在任意的平台 只提供兩個操作,map和reduce,表達力欠缺 乙個job只有map和...

大資料Hadoop學習六

1 hadoop的改進 hadoop 1.0到2.0的改進分為mapreduce和hdfs架構的演進。另一方面,不斷加入kafka,spark,pig,tez等新的元件。hadoop2.0 針對hdfs涉及了hdfs ha,提供名稱節點的熱備份 設計了hdfs federation管理多個命名空間 ...