亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種表外文件數(shù)據(jù)的求交集方法及系統(tǒng)與流程

文檔序號:12121551閱讀:184來源:國知局

本發(fā)明涉及大數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種表外文件數(shù)據(jù)的求交集方法,以及表外文件數(shù)據(jù)的求交集系統(tǒng)。



背景技術(shù):

hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進行運行。其優(yōu)點是學(xué)習(xí)成本低,可以通過類SQL語句快速實現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析。

hive的hql(hive定義了簡單的類sql查詢語言,稱為hql,它允許熟悉sql的用戶查詢數(shù)據(jù)。同時,這個語言也允許熟悉MapReduce開發(fā)者的開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復(fù)雜的分析工作。)提供了基于表字段的join(求交集)方法,只需要寫個簡單hql就可以滿足大部分的join需求。但是join之前需要建表。這種方法不能處理表外文件,必須將要join(求交集)的數(shù)據(jù)放到表中才可以。



技術(shù)實現(xiàn)要素:

為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問題是提供了一種表外文件數(shù)據(jù)的求交集方法,其解決了hive的hql不能直接對表外的格式化數(shù)據(jù)直接進行join的問題,操作簡單方便。

本發(fā)明的技術(shù)方案是:這種表外文件數(shù)據(jù)的求交集方法,該方法的基礎(chǔ)框架是Hadoop streaming,且包括以下步驟:

(1)開始;

(2)檢查輸入的參數(shù)是否合法,是則執(zhí)行步驟(3),否則執(zhí)行步驟(11);

(3)對每個文件路徑,檢查其是否位于hdfs,是則執(zhí)行步驟(6),否則執(zhí)行步驟(4);

(4)檢查該路徑是否位于本地,是則執(zhí)行步驟(5),否則執(zhí)行步驟(11);

(5)將本地路徑下的文件上推到hdfs的一個臨時目錄下;

(6)從兩份數(shù)據(jù)中分別抽取樣本檢查其字段分割符和每一行數(shù)據(jù)的字段個數(shù);

(7)如果用戶沒有指定輸出列表,則生成一個包含兩份數(shù)據(jù)的所有字段的輸出列表,如果用戶沒有指定輸出路徑,生成一個臨時目錄;

(8)判斷輸出列表是否超出字段的范圍,是則執(zhí)行步驟(9),否則執(zhí)行步驟(11);

(9)根據(jù)檢測的各項參數(shù)提交一個用戶自定義的mapreduce任務(wù);

(10)求交集結(jié)果;

(11)退出。

本發(fā)明無需建表就能直接join位于本地或者hdfs上的任何兩份數(shù)據(jù),因此解決了hive的hql不能直接對表外的格式化數(shù)據(jù)直接進行join的問題;本發(fā)明只需要三個參數(shù),一鍵完成,因此操作簡單方便。

還提供了一種表外文件數(shù)據(jù)的求交集系統(tǒng),該系統(tǒng)包括:

輸入?yún)?shù)檢查模塊,其配置來檢查輸入的參數(shù)是否合法;

hdfs路徑檢查模塊,其配置來對每個文件路徑,檢查其是否位于hdfs;

本地路徑檢查模塊,其配置來檢查路徑是否位于本地;

文件上推模塊,其配置來將本地路徑下的文件上推到hdfs的一個臨時目錄下;

抽樣模塊,其配置來從兩份數(shù)據(jù)中分別抽取樣本檢查其字段分割符和每一行數(shù)據(jù)的字段個數(shù);

列表輸出模塊,其配置為:如果用戶沒有指定輸出列表,則生成一個包含兩份數(shù)據(jù)的所有字段的輸出列表,如果用戶沒有指定輸出路徑,生成一個臨時目錄;

列表檢查模塊,其配置來判斷輸出列表是否超出字段的范圍;

任務(wù)提交模塊,其配置來根據(jù)檢測的各項參數(shù)提交一個用戶自定義的mapreduce任務(wù);

計算模塊,其配置來求交集結(jié)果。

附圖說明

圖1所示為根據(jù)本發(fā)明的表外文件數(shù)據(jù)的求交集方法的流程圖。

具體實施方式

如圖1所示,這種表外文件數(shù)據(jù)的求交集方法,該方法的基礎(chǔ)框架是Hadoop streaming,且包括以下步驟:

(1)開始;

(2)檢查輸入的參數(shù)是否合法,是則執(zhí)行步驟(3),否則執(zhí)行步驟(11);

(3)對每個文件路徑,檢查其是否位于hdfs,是則執(zhí)行步驟(6),否則執(zhí)行步驟(4);

(4)檢查該路徑是否位于本地,是則執(zhí)行步驟(5),否則執(zhí)行步驟(11);

(5)將本地路徑下的文件上推到hdfs的一個臨時目錄下;

(6)從兩份數(shù)據(jù)中分別抽取樣本檢查其字段分割符和每一行數(shù)據(jù)的字段個數(shù);

(7)如果用戶沒有指定輸出列表,則生成一個包含兩份數(shù)據(jù)的所有字段的輸出列表,如果用戶沒有指定輸出路徑,生成一個臨時目錄;

(8)判斷輸出列表是否超出字段的范圍,是則執(zhí)行步驟(9),否則執(zhí)行步驟(11);

(9)根據(jù)檢測的各項參數(shù)提交一個用戶自定義的mapreduce任務(wù);

(10)求交集結(jié)果;

(11)退出。

本發(fā)明無需建表就能直接join位于本地或者hdfs上的任何兩份數(shù)據(jù),因此解決了hive的hql不能直接對表外的格式化數(shù)據(jù)直接進行join的問題;本發(fā)明只需要三個參數(shù),一鍵完成,因此操作簡單方便。

另外,所述步驟(2)中,輸入的參數(shù)至少包括三個參數(shù):有且僅有兩個文件路徑和一個where條件。

另外,該方法的輸入文件是兩份數(shù)據(jù),每一份數(shù)據(jù)是目錄或者文件,每一份數(shù)據(jù)內(nèi)只有一種分割符。

另外,所述兩份數(shù)據(jù)的分隔符是不同的。

或者,所述兩份數(shù)據(jù)的分隔符是相同的。

本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,包括上述實施例方法的各步驟,而所述的存儲介質(zhì)可以是:ROM/RAM、磁碟、光盤、存儲卡等。因此,與本發(fā)明的方法相對應(yīng)的,本發(fā)明還同時包括一種表外文件數(shù)據(jù)的求交集系統(tǒng),該系統(tǒng)通常以與方法各步驟相對應(yīng)的功能模塊的形式表示。使用該方法的系統(tǒng)包括:

輸入?yún)?shù)檢查模塊,其配置來檢查輸入的參數(shù)是否合法;

hdfs路徑檢查模塊,其配置來對每個文件路徑,檢查其是否位于hdfs;

本地路徑檢查模塊,其配置來檢查路徑是否位于本地;

文件上推模塊,其配置來將本地路徑下的文件上推到hdfs的一個臨時目錄下;

抽樣模塊,其配置來從兩份數(shù)據(jù)中分別抽取樣本檢查其字段分割符和每一行數(shù)據(jù)的字段個數(shù);

列表輸出模塊,其配置為:如果用戶沒有指定輸出列表,則生成一個包含兩份數(shù)據(jù)的所有字段的輸出列表,如果用戶沒有指定輸出路徑,生成一個臨時目錄;

列表檢查模塊,其配置來判斷輸出列表是否超出字段的范圍;

任務(wù)提交模塊,其配置來根據(jù)檢測的各項參數(shù)提交一個用戶自定義的mapreduce任務(wù);

計算模塊,其配置來求交集結(jié)果。

另外,所述輸入?yún)?shù)檢查模塊中,輸入的參數(shù)至少包括三個參數(shù):有且僅有兩個文件路徑和一個where條件。

本發(fā)明實現(xiàn)方案的具體過程如下:

1、基礎(chǔ)框架(Framework)

Hadoop streaming

2、各模塊結(jié)構(gòu)(Modules)

●無

3、約定和規(guī)范

●輸入文件必須是兩份數(shù)據(jù)不能是兩份以上數(shù)據(jù),每一份數(shù)據(jù)可以是目錄或者文件

●每一份數(shù)據(jù)內(nèi)只能用一種分割符。

●兩份數(shù)據(jù)的分隔符可以不同。

4、格式化參數(shù)(Params)

●輸入(in):

√Input files:要join的兩份數(shù)據(jù),只能是兩份數(shù)據(jù)不能多或者少。必選參數(shù)

√Where condition:join的條件,必選參數(shù)

√Output list:輸出列表,用戶指定的輸出字段,可選參數(shù),默認輸出join到的兩份數(shù)據(jù)中的所有字段。

√Output dir:輸出目錄,可選參數(shù),默認自動生成。

●輸出(out):

√Join的結(jié)果

5、編碼實現(xiàn)(Programs)

●Coding:按照流程圖編寫所需要的檢測腳本、mapper、reducer

6、構(gòu)建部署(Build)

●Ubuntu12.04.4

●Hadoop2.4

●Python2.6

本發(fā)明的有益效果如下:

1.無需建表就能直接join位于本地或者hdfs上的任何兩份數(shù)據(jù)。

2.只需要三個參數(shù),一鍵完成。

以上所述,僅是本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)方案的保護范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1