成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MapReduce初級案例——單表關聯

大數據
“ 單表關聯”這個實例要求從給出的數據中尋找所關心的數據,它是對原始數據所包含信息的挖掘。

 

[[173554]]

“ 單表關聯”這個實例要求從給出的數據中尋找所關心的數據,它是對原始數據所包含信息的挖掘。下面進入這個實例。

1 .實例描述

實例中給出 child-parent(孩子——父母)表,要求輸出 grandchild-grandparent(孫子——爺奶)表。

樣例輸入如下所示。

file:

家族樹狀關系譜:

樣例輸出如下所示。

file:

2 .設計思路

分析這個實例,顯然需要進行單表連接,連接的是左表的 parent 列和右表的 child 列,且左表和右表是同一個表。

連接結果中除去連接的兩列就是所需要的結果——“ grandchild–grandparent”表。要用MapReduce 解決這個實例, 首先應該考慮如何實現表的自連接; 其次就是連接列的設置;最后是結果的整理。

考慮到 MapReduce 的 shuffle 過程會將相同的 key 會連接在一起,所以可以將 map 結果的 key 設置成待連接的列,然后列中相同的值就自然會連接在一起了。再與最開始的分析聯系起來:

要連接的是左表的 parent 列和右表的 child 列,且左表和右表是同一個表,所以在 map階段將讀入數據分割成 child 和 parent 之后,會將 parent 設置成 key, child 設置成 value進行輸出,并作為左表;再將同一對 child 和 parent 中的 child 設置成 key, parent 設置成value 進行輸出,作為右表。

為了區分輸出中的左右表,需要在輸出的 value 中再加上左右表的信息,比如在 value 的 String 最開始處加上字符 1 表示左表,加上字符 2 表示右表。

這樣在 map 的結果中就形成了左表和右表,然后在 shuffle 過程中完成連接。 reduce 接收到連接的結果,其中每個 key 的 value-list 就包含了“ grandchild–grandparent”關系。

取出每個key 的 value-list 進行解析,將左表中的 child 放入一個數組, 右表中的 parent 放入一個數組,然后對兩個數組求笛卡爾積就是最后的結果了。

3 .程序代碼

程序代碼如下所示。

 

 4 .代碼結果

準備測試數據

通過 Eclipse 下面的“ DFS Locations”在“ /user/hadoop”目錄下創建輸入文件“ STjoin_in”文件夾( 備注:“ STjoin_out”不需要創建。)如圖 4.4-1 所示,已經成功創建。

然后在本地建立一個 txt 文件,通過 Eclipse 上傳到“ /user/hadoop/STjoin_in”文件夾中,一個 txt 文件的內容如“實例描述”那個文件一樣。如圖 4.4-2 所示,成功上傳之后。

從 SecureCRT 遠處查看“ Master.Hadoop”的也能證實我們上傳的文件,顯示其內容如圖 4.4-3 所示:

運行詳解

( 1) Map 處理:

map 函數輸出結果如下所示。

( 2) Shuffle 處理

在 shuffle 過程中完成連接。

首先由語句“ 0 != grandchildnum && 0 != grandparentnum”得知,只要在“ value-list”中沒有左表或者右表,則不會做處理,可以根據這條規則去除無效的 shuffle 連接。

然后根據下面語句進一步對有效的 shuffle 連接做處理。

針對一條數據進行分析:

分析結果: 左表用“ 字符 1”表示, 右表用“ 字符 2”表示,上面的

中的“ key”表示左表與右表的連接鍵。而“ value-list”表示以“ key”連接的左表與右表的

相關數據。

根據上面針對左表與右表不同的處理規則,取得兩個數組的數據如下所示:

然后根據下面語句進行處理。

處理結果如下面所示:

其他的有效 shuffle 連接處理都是如此。

(3)查看運行結果

這時我們右擊 Eclipse 的“ DFS Locations”中“ /user/hadoop”文件夾進行刷新,這時會發現多出一個“ STjoin_out”文件夾,且里面有 3 個文件,然后打開雙其“ part-r-00000”文件,會在 Eclipse 中間把內容顯示出來。如圖 4.4-4 所示。

 

責任編輯:趙寧寧 來源: 36大數據
相關推薦

2016-10-14 23:16:50

數據排序數據原始數據

2013-04-24 10:47:48

Hadoop集群

2009-09-25 10:58:07

Hinerbate單端

2013-10-16 16:38:39

鏈表矩陣

2010-10-15 10:37:27

MySQL創建關聯表

2010-11-23 11:36:15

MySQL創建關聯表

2021-05-29 10:22:49

單例模式版本

2010-10-15 14:39:55

MySQL單表大小

2022-10-20 09:26:24

MySQLOracleSqlServer

2010-07-19 09:28:37

Perl關聯數組

2011-06-28 14:02:49

表分區

2024-04-01 08:00:00

MySQL關聯設計數據庫

2010-09-25 16:42:45

sql語句

2021-03-10 09:38:44

JeecgBoot 單表數據sheet實例

2011-05-07 16:03:56

單頁網站網站設計

2018-11-14 14:33:33

MapReduce數據集計算

2010-08-04 09:55:34

LINQ to SQL

2010-11-22 13:13:30

MySQL模糊查詢

2011-10-18 14:00:30

MapReduce分布式流式

2010-11-22 14:05:53

MySQL單表大小
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清一区二区三区 | 老外几下就让我高潮了 | 我想看一级黄色毛片 | 国产资源网 | 久久亚洲一区 | 中文字幕在线一区 | 成人av网站在线观看 | 国产激情91久久精品导航 | 美日韩一区二区 | 午夜免费福利电影 | 一二三在线视频 | 国产精品久久久久久久久久 | 精品亚洲一区二区三区 | 欧美久| 国产成人午夜高潮毛片 | 久久高清 | 一级毛片视频在线观看 | 四虎影院在线观看av | 欧美在线视频网 | 免费av手机在线观看 | 成人久久久 | 亚洲精品福利在线 | 一级黄色毛片子 | 成年视频在线观看福利资源 | 中文字幕在线观看成人 | 狠狠干天天干 | 麻豆国产精品777777在线 | 欧美日韩不卡合集视频 | 成人在线观看网站 | 精品国偷自产在线 | 国产精品av久久久久久毛片 | a免费视频 | 日韩视频在线一区 | 黑人中文字幕一区二区三区 | 国产精品污污视频 | 国产成人免费观看 | 欧美2区 | 99国产精品久久久 | 亚洲精品一区二区三区 | 久久机热 | 日韩中文字幕网 |