1. 程式人生 > >Spark中Map、Shulffe、Reduce的含義解釋

Spark中Map、Shulffe、Reduce的含義解釋

初入spark門,會出現這些名詞,半年了我表示都沒有很名錶這些詞的意思,在具體工作中指代什麼環節。今天看了這個部落格突然頓悟....摘下重點。

1.Map階段

讀取源表的資料,Map輸出時候以Join on條件中的列為key,如果Join有多個關聯鍵,則以這些關聯鍵的組合作為key;
Map輸出的value為join之後所關心的(select或者where中需要用到的)列;同時在value中還會包含表的Tag資訊,用於標明此value對應哪個表;按照key進行排序。可以理解為將資料排列準備好,便於下一步操作。

2.Shuffle階段

根據key的值進行hash,並將key/value按照hash值推送至不同的reduce中,這樣確保兩個表中相同的key位於同一個reduce中。

3.Reduce階段

根據key的值完成join操作,期間通過Tag來識別不同表中的資料。

SELECT 
 a.id,a.dept,b.age 
FROM a join b 
ON (a.id = b.id);

參考部落格:

1.http://lxw1234.com/archives/2015/06/313.htm

相關推薦

SparkMapShulffeReduce含義解釋

初入spark門,會出現這些名詞,半年了我表示都沒有很名錶這些詞的意思,在具體工作中指代什麼環節。今天看了這個部落格突然頓悟....摘下重點。1.Map階段讀取源表的資料,Map輸出時候以Join on條件中的列為key,如果Join有多個關聯鍵,則以這些關聯鍵的組合作為ke

SparkmapmapPartitionsforeachforeachPartitions運算元

map 與 mapPartitions /** * Return a new RDD by applying a fu

sparkwebUI的啟動除錯配置歷史伺服器,spark-Master-HA等

Spark WEBUI         【Jobs,Stages,StorageLevel,Environment,Executors,SQL,Streaming 】         4040埠可以看到當前application中的所有的job,點選job可以看到當前job下

Sparkmap與flatMap

必須 ret iter ext within serve 函數 range fail map將函數作用到數據集的每一個元素上,生成一個新的分布式的數據集(RDD)返回 map函數的源碼: def map(self, f, preservesPartitioning=Fal

sparkmap與mapPartitions區別

part print map spark 偽代碼 一個 數據 最終 partition 在spark中,map與mapPartitions兩個函數都是比較常用,這裏使用代碼來解釋一下兩者區別 import org.apache.spark.{SparkConf, Spar

Spark map 與 flatMap 的比較

通過一個實驗來看Spark 中 map 與 flatMap 的區別。   步驟一:將測試資料放到hdfs上面 hadoopdfs -put data1/test1.txt /tmp/test1.txt 該測試資料有兩行文字:   步驟二:在Spark

Hive執行map的數量和reduce的數量怎麼控制

一、 控制hive任務中的map數: 通常情況下,作業會通過input的目錄產生一個或者多個map任務。 主要的決定因素有: input的檔案總個數,input的檔案大小,叢集設定的檔案塊大小(目前為128M, 可在hive中通過set dfs.block.size;命令檢視到

Sparkmap和flatMap的區別

Map和flatMap的區別 Transformation 含義 map(func) 返回一個新的RDD,該RDD由每一個輸入元素經過func函式轉換後組成 flatMap(func) 類似於map,但是每一個輸入元素可以被對映為0或多個輸出

sparkmap和flatmap之間的區別

map()是將函式用於RDD中的每個元素,將返回值構成新的RDD。 flatmap()是將函式應用於RDD中的每個元素,將返回的迭代器的所有內容構成新的RDD,這樣就得到了一個由各列表中的元素組成的RDD,而不是一個列表組成的RDD。 有些拗口,看看例子就明白了。 val

Spark學習筆記 --- SparkMap和FlatMap轉換的區別

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

spark map 和flatmap 的區別

需求背景: 統計相鄰兩個單詞出現的次數。 val s="A;B;C;D;B;D;C;B;D;A;E;D;C;A;B" s: String = A;B;C;D;B;D;C;B;D;A;E;D;C;A;B  val data=sc.parallelize(Seq(s)

指令碼”2>&1″的含義解釋

指令碼是:nohup /mnt/Nand3/H2000G  >/dev/null  2>&1 &  對於& 1 更準確的說應該是檔案描述符 1,而1 一般代表的就是STDOUT_FILENO,實際上這個操作就是一個dup

Python的lambdamapfilterreducezip

sum http seq 是你 解包 range 匿名函數 三元 param lambda lambda是匿名函數,也就是沒有名字的函數。lambda的語法非常簡單: 下面是一個lambda表達式的簡單例子: 註意:我們可以把lambda表達式賦值給一個變量,然後通過這個

pythonmapfilterreduce函式

三個函式比較類似,都是應用於序列的內建函式。常見的序列包括list、tuple、str。 1.map函式 map函式會根據提供的函式對指定序列做對映。 map函式的定義: map(function, sequence[, sequence, ...]) -> list 通過定義可以看到,這個函式的第

hadoop mapreduce數量對mapreduce執行速度的影響

增加task的數量,一方面增加了系統的開銷,另一方面增加了負載平衡和減小了任務失敗的代價;map task的數量即mapred.map.tasks的引數值,使用者不能直接設定這個引數。Input Split的大小,決定了一個Job擁有多少個map。預設input spli

Spring使用MapSetList數組屬性集合的註入方法配置文件

查看 main list highlight 配置 spring配置 pla lec while (1)下邊的一個Java類包含了所有Map、Set、List、數組、屬性集合等這些容器,主要用於演示spring的註入配置; [java] view plain c

JS關於clientWidthoffsetWidthscrollWidth 的含義

doc offset tran doctype width 指定 html 5.5 ava 網頁可見區域寬: document.body.clientWidth;網頁可見區域高: document.body.clientHeight;網頁可見區域寬: document.bo

MapListSet在Java的各種遍歷方法

try one out 循環 java light size i++ pre 一、Map的4種遍歷 Map<String, String> map = new HashMap<String, String>(); map.put("姓名", "

python multiprocessing.Pool mapmap_asyncapplyapply_async的區別

pen pool arm res 區別 col apply rgs pytho   multiprocessing是python的多進程庫,multiprocessing.dummy則是多線程的版本,使用都一樣。   其中都有pool池的概念,進程池/線程池有共同的方法,其

Java泛型ETKV等的含義

mcs htm -1 pkg ppk hms msr use doc b5hm67猛繳脫窩姨逗http://jz.docin.com/eaeme82342fjwk4c懊胃秩烏坊浪http://weibo.com/p/1005056359924983j5pm7t俾攪且歡居聘h