1. 分割槽
為了讓多個執行器並行地工作,spark 將資料分解成多個資料塊,每個資料塊叫做乙個分割槽。 分割槽是位於集群中的一台物理機上的多行資料的集合,dataframe 的分割槽也說明了在執行過程 中,資料在集群中的物理分布。如果只有乙個分割槽,即使擁有數千個執行器,spark 也只有一 個執行器在處理資料。類似地,如果有多個分割槽,但只有乙個執行器,那麼 spark 仍然只有那 乙個執行器在處理資料,就是因為只有乙個計算資源單位。
2. 轉換 (transformation)
3. 動作 (action)
分三類:
4. dataset
dataset 中可用的 api 是型別安全的,這意味著 dataset 中的物件不會被視為與初始定義的類不相同的另乙個類。 這使得 dataset 在編寫大型應用程式時尤其有效,這樣的話多個軟體工程師可以通過協商好的接 口進行互動。
5. 流處理
流資料動作與靜態資料動作有點不同,因為我們首先要將流資料快取到某個地方,而不是像對 靜態資料那樣直接呼叫 count 函式(對流資料沒有任何意義)。流資料將被快取到乙個記憶體上 的資料表裡,當每次被觸發器觸發(trigger)後更新這個記憶體快取。在這個例中,因為我們子 之前設定的 maxfilespertrigger 選項,每次讀完乙個檔案後都會被觸發,spark 將基於新讀入的 檔案更新記憶體資料表的內容,這樣的話,聚合操作可以始終維護著歷史資料中的最大值。
6. rdd (低階非結構化api)
rdd 轉 df
spark.sparkcontext.parallelize(seq(1, 2, 3)).todf() // in scala
// in python
from pyspark.sql import row spark.sparkcontext.parallelize([row(1), row(2), row(3)]).todf()
Spark學習筆記(一) spark簡介
spark是基於記憶體計算的大資料平行計算框架。09年誕生於加州大學伯克利分校amplab.spark是mapreduce的替代方案,相容hdfs hive等分布式儲存層,可融入hadoop的生態系統,以彌補mapreduce的不足。其主要優勢如下 中間結果輸出 可以將多stage的任務串聯或者並行...
spark學習筆記一
一 執行spark shell的2種方式 1.scala spark shell 2.python pyspark 二.spark訪問hadoop hdfs檔案 準備工作 file 上傳到hdfs hadoop fs put test.log input test.log spark shell裡執...
spark 學習筆記
最近使用spark簡單的處理一些實際中的場景,感覺簡單實用,就記錄下來了。部門使用者業績表 1000w測試資料 使用者 部門 業績 資料載入 val context new sparkcontext conf var data context.textfile data.txt 場景1 求每個部門的...