大數(shù)據(jù)etl考試題庫及答案_第1頁
大數(shù)據(jù)etl考試題庫及答案_第2頁
大數(shù)據(jù)etl考試題庫及答案_第3頁
大數(shù)據(jù)etl考試題庫及答案_第4頁
大數(shù)據(jù)etl考試題庫及答案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一、單項選擇題(每題2分)

1、下列不屬于Hadoop平臺核心模塊的是:

B.HDFSC.YARND.M叩Reduce

2、下列不屬于Hive組件的是:

A.用戶接口B.MapReduceC.執(zhí)行引擎D?元數(shù)據(jù)存儲

3、下列哪種不屬于Hive提供的復雜數(shù)據(jù)類型:

A.ArrayB.MapC.VarcharD.Struct

4、下列不屬?Hive主要數(shù)據(jù)模型的是:

A.外部表B.觸發(fā)器C.分區(qū)D.桶

5、下列不屬于Hive所支持的數(shù)據(jù)導入方式的是:

A.從本地文件系統(tǒng)導入數(shù)據(jù)到Hive相應表中。

B.從HDFS導入數(shù)據(jù)到Hive相應表中。

C.從其他表中查詢數(shù)據(jù)并導入Hive相應表中。

D.使用insert插入語句向Ilive相應表中插入數(shù)據(jù)。

6、關(guān)于分區(qū)表的下列說法,錯誤的是:

A.表的分區(qū)是一種根據(jù)“分區(qū)列”的值對表進行粗略劃分的機制。

B.對表進行分區(qū)可用減少每一次掃描的總逑據(jù)量,對表進行合理的管理以及提高查詢效率。

C.指定分區(qū)信息時所使用的列,必須是表中已經(jīng)存在的列

D.創(chuàng)建表的時候使用Partitionedoy(分區(qū)列1數(shù)據(jù)類型,分區(qū)列2數(shù)據(jù)類型…)指定分區(qū)信

息。

7、關(guān)于動態(tài)分區(qū)和靜態(tài)分區(qū)的描述,正確的是:

A.對于靜態(tài)分區(qū),導入數(shù)據(jù)必須明確指定分區(qū)的詳細信息。比如:

partition(academy=,computer',class='034')。

B.對于動態(tài)分區(qū),導入數(shù)據(jù)時不需要明確指明分區(qū)詳細信息,系統(tǒng)根據(jù)查詢語句執(zhí)行結(jié)果

的最后一個或幾個字段的值自動判斷數(shù)據(jù)該導入哪個分區(qū)之中。

C.確定一個分區(qū)的分區(qū)列只能有一個,旦分區(qū)列必須是表結(jié)構(gòu)中已有的列。

D.在insertoverwritetablestudentpartition(academy,class)selectid,name)academy2,class2

fromstudent_tmp;導入數(shù)據(jù)的語句中,根據(jù)查詢語句的academy2,class2列的值自動決定數(shù)

據(jù)導入的分區(qū)。

8、Hive中的謂詞like用于匹配特定的子串,能從Books表中查詢書名包含,包含“程”或

“庫”的圖書的信息。

A.select*fromBookswhereBnsmelike'斷程庫]附

B.select*fromBookswhereBnamelike'馳程%庫%'

C.select*fromBookswhereBnamelike[程—庫%'

D.select*fromBookswhereBnamelike程庫好

■下列能夠從students(有些班級中有同名的同學)表中統(tǒng)計出每個班人數(shù)的SQL語句是:

A.selectclass,count(*)as'人數(shù)'fromstudents

B.selectclass,count(*)as'人數(shù)'fromstudentsgroupbyclassorderbycount(*)DESC

C.selectname,class,count(*)as'人數(shù)'fromstudentsgroupbyclassorderbycount(*)

DESC

D.selectclass,count(distinctname)as'人數(shù)'fromstudentsgroupbyclassorderby

count(distinctname)DESC

10、關(guān)于連接查詢的描述錯誤的是:

A.當所需要查詢的信息分散于多個表時,為了查詢到所希望的信息,就需要采用連接查詢

將多個表的信息連接起來。

B.Hive中支持的連接類型有內(nèi)連接、左外連接、右外連接、全外連接以及笛卡爾積。

C.連接查詢時用于指定連接條件的字段,必須同時出現(xiàn)在左邊和右表中,而且其字段名和

字段的數(shù)據(jù)類型都必須一模一樣。

D.選擇左表和右表中滿足聯(lián)結(jié)條件的行以及左、右表中不滿足聯(lián)結(jié)條件的行。對于沒有匹

配的記錄,則會以null作為其值。

11、下列不屬于Hive支持的用戶自定義函數(shù)UDF的是:

A.UDF(User-Defined-Function):一進一出

B.UDAF(User-DefinedAggregationFunction):聚集函數(shù),多進一出,類似于:count/max/min

C.UDTF(User-DefinedTable-GeneratingFunctions):表生成函數(shù),一進多出

D.UDVF(llser-DefinedViewFunction)

12、關(guān)于Hive的元數(shù)據(jù)庫,錯誤的是:

A.為了使Hive能正常與Myscl數(shù)據(jù)庫系統(tǒng)通信,需要配置hive-site.xml配置文件的

javax.jdo.option.ConnectionURL配置項指明Mysql數(shù)據(jù)庫的相關(guān)信息。

B.Hive的默認元數(shù)據(jù)庫為Derby,使用Derby作為元數(shù)據(jù)庫無法并發(fā)訪問且性能較低,常

常使用關(guān)系型數(shù)據(jù)庫Mysql作為Hive的元數(shù)據(jù)庫。

C.為了使Mysql作為Hive的元數(shù)據(jù)庫,除了配置Hive-site.xml中與Mysql相關(guān)配置項外,

還需要在Hive中安裝用于連接Mysql數(shù)據(jù)庫的驅(qū)動程序。

D.Hive的元數(shù)據(jù)庫用來存儲表、視圖等對象的描述信息,包括表、列及其類型、表數(shù)據(jù)映

射關(guān)系等.此外,表中的直賣數(shù)據(jù)也存儲在元數(shù)據(jù)庫中。

13、關(guān)于MapReduce編程的說法中,錯誤的是:

A.MapReduce是Hadoop大數(shù)據(jù)平臺的海量數(shù)據(jù)離線式并行處理框架。

B.對于WordCount官方示例MapReduce程序而言,Map階段的輸入鍵值對(keyin,value

in)分別表示每行數(shù)據(jù)的內(nèi)容字符串和每個單詞出現(xiàn)的頻率。

C.編寫M叩Reduce程序時,用戶的關(guān)注點在于M叩階段和Reduce階段。

D.MapReduce程序處理的各階段的輸入輸出都是鍵值對。

14、整MapReduce程序進行數(shù)據(jù)的清洗主要是實現(xiàn)下列哪一個方法:

A.實現(xiàn)自定義Mapper類的map方法。

B.實現(xiàn)自定義Reducer類的reduce方法。

C.實現(xiàn)main方法。

D.實現(xiàn)分組、排序等內(nèi)部過程的相應方法。

15、關(guān)于數(shù)據(jù)清洗的MapReduce程序,Map階段的繼承類M叩per的4個泛型參數(shù)的說法

錯誤的是:

A.Mapper類的第一、第二個參數(shù)表示map處理的輸入鍵值對。

B.Mapper類的四個泛型參數(shù)的數(shù)據(jù)類型必須同官方示例代碼WordCount保持一致,不能

修改。

C.Mappe「類的第三、第四個參數(shù)表示m沖處理結(jié)果的輸出鍵值對。

D.每個參數(shù)的數(shù)據(jù)類型根據(jù)實際情況靈活選用Hadoop支持的數(shù)據(jù)類型。

16、在本地電腦上使用Idea開發(fā)用于網(wǎng)站日志數(shù)據(jù)清洗的MapReduce程序,調(diào)試成功后

程序打包為LogClean的jar包?,F(xiàn)需要在遠程真實的集群環(huán)境中執(zhí)行jar包,所使用的語

句是:

A.hadoopjarLogCleanjar包的主類名

B.hadoopjarLogCleanjar包的主類名輸入數(shù)據(jù)所在HDFS目錄處理結(jié)果所在

HDFS目錄

C.hdfsjarLogCleanjar包的主類名輸入數(shù)據(jù)所在本地文件系統(tǒng)目錄處理結(jié)果所

在本地文件系統(tǒng)目錄

D.hdfsjarLogClean輸入數(shù)據(jù)所在HDFS目錄處理結(jié)果所在HDFS目錄

17、關(guān)于官方實例WordCount.jar包在Hadoop集群中執(zhí)行的說法錯誤的是:

A.再次執(zhí)行WordCountjar包之前,需要鴕刪吵上次執(zhí)行結(jié)果的存放目錄。

B.執(zhí)行WordCount.jar包之前,必須首先創(chuàng)建存放執(zhí)行結(jié)果的目錄。

C.執(zhí)行WordCount.jar包之前,不能創(chuàng)建存放執(zhí)行結(jié)果的目錄,系統(tǒng)會自動創(chuàng)建。

D.關(guān)于輸出目錄的處理,更好的做法是在MapReduce程序代碼中實現(xiàn)輸出目錄自動檢

測、自動刪除的相關(guān)功能。

18、假設有一個名為Students的表,該表根據(jù)sid字段分成8桶,貝IJ關(guān)于下歹UHQL語句

select*fromStudentstablesample(bucket2outof4onsid);

的說法正確的是:

A.語句總共抽取了2個桶中的數(shù)據(jù),這2個桶分別是:第2號桶和第6號桶。

B.語句總共抽取了2個桶中的數(shù)據(jù),其桶的編號分別是:2、3

C.語句總共抽取了4個桶中的數(shù)據(jù),其桶的編號分別是:1、2、3、4

D.抽樣子句tablesample(bucket2outof4onsid),中的2表示抽取的桶的數(shù)量,4

表示開始抽取的桶的編號。

19、下面語句的作用是:

[root@mastercode]#hive-f/code/create_Student_table.sql

并執(zhí)行名為“createStudenttable.sql”文件中的HQL語句。執(zhí)行完畢

B.執(zhí)行名為“create_Student_table.sql”文件中的HQL語句。執(zhí)行完畢后,處于Hive命

令行交互模式,等待執(zhí)行下一個命令。

C.創(chuàng)建名為create_Student_table.sql"的文件。

D.打開名為create_Student_table.sql”的文件。

20、下列關(guān)于是Hive所支持的創(chuàng)建表方法,不正確的是:

A.直接建表法(Createtabletable.name)。

B.查詢建表法(Createtableasselect)°

C.導入建表法(CreatetableLoad).

D.Like建表法(Createtablelike)。

二、多項選擇題(每題2分)

|、關(guān)于Hive的描述中,正確的是:

A.Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具。

B能夠?qū)⒔Y(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表。

C.提供了一系列的工具用來進行數(shù)據(jù)的提取、轉(zhuǎn)換、加載(ETL)。

提供了類SQL的語句用于數(shù)據(jù)的分析,降低了數(shù)據(jù)分析的難度。

2、Hive和關(guān)系型數(shù)據(jù)的主要區(qū)別有:

A.Hive使用的是Hadoop的HDFS,而關(guān)系數(shù)據(jù)庫使用服務器本地文件系統(tǒng),

BHive使用的計算模型是MapReduce,而關(guān)系數(shù)據(jù)庫使用的是廠商自己設計的計算模型

C.Hive是為海量數(shù)據(jù)做數(shù)據(jù)挖掘而設計,而關(guān)系數(shù)據(jù)庫為實時業(yè)務處理而設計。

D.Hive相比于關(guān)系數(shù)據(jù)庫而言更具可擴展,周。

3、下列Hive相關(guān)語句及其描述手確空是:

A.Hive-f<filename>〃執(zhí)行文件中的SQL語句

B.Hive-e<SQL語句>〃執(zhí)行命令行中的SQL語句

C.Hive-S-e<SQL語句>〃靜音模式執(zhí)行命令行中的SQL語句(不會在終端上輸出

MapReduce進度等日志信息)

D.Hive-S-e<SQL語句>>result.csv〃將語句執(zhí)行的結(jié)果導入到文件

4、Hive支持的表數(shù)據(jù)文件格式包括:

A.TextFile格式B.SequenceFile格式|C.RCFile格司D[RC格伊

I、關(guān)于動態(tài)分區(qū)的使用過程中,正確的是:

A.使用動態(tài)分區(qū)需要設置hive.exec.dynamic.partition參數(shù)值為true。

B.如果需要設置所有分區(qū)列為動態(tài)分區(qū)列時,需要設置

hive.exec.dynamic.partition.mode=nonstricto

C.分區(qū)在使用過程中,分區(qū)列好像表結(jié)構(gòu)中已有的列一樣,可以作為查詢的條件使用。

D.使用分區(qū)的時候,形如pdililiuiQcddeiiycldss-'034,)將主分區(qū)列設置為動態(tài)分區(qū)列,

而副分區(qū)列設置為靜態(tài)分區(qū)列是不被允許的。

6、關(guān)于桶的敘述中,正確的是:

A.桶通過對指定列的數(shù)據(jù)進行哈希計算,通過哈希值將一個列下的數(shù)據(jù)切分為一個桶。

B.在Hive中,每一個桶對應于相應目錄下的一個文

C需要設置hive.enforce.bucketing屬性為true,以便Hive能夠識別桶,創(chuàng)建表時使用

clusteredby(分桶列)into桶的數(shù)量buckets指定桶相關(guān)信息

D.桶相比于分區(qū)而言,其中的數(shù)據(jù)可能存在較大的傾斜(有些桶數(shù)據(jù)量很大,而有些桶數(shù)

據(jù)很?。謪^(qū)不存在這個問題。

7、關(guān)于Hive中視圖的說法正確期是:

A.視圖是基于基本表或其他視圖的一張?zhí)摫怼?/p>

B.Hive中只存儲關(guān)于視圖的定義,而視圖的數(shù)據(jù)是在使用時執(zhí)行查詢語句得出。

C.視圖除了能查詢數(shù)據(jù),還能通過視圖load/insert/update/delete數(shù)據(jù)。

D.Hive中的視圖與關(guān)系型數(shù)據(jù)庫中的視圖功能、優(yōu)缺點相當。

8、數(shù)據(jù)的導出是Hive中的一個常規(guī)操作,下列導出數(shù)據(jù)的操作,正確的是:

A.拷貝相應數(shù)據(jù)文件到目錄。比如:hdfsdfs-cpsource_pathtarget_path0

B.導出到一個目錄,例如:Insertoverwrite[local]directoryytrnp/employee'

Selectname,salary,addressfromemployeewherestate='US'

C.導出到另外一個表。例如:insertintotablestudents2select*fromstudents;

D.導出到文件。例如:hive-e"select*fromstudents">>>'/data/students.txt"

9、關(guān)于聚合函數(shù)的描述正確的是:

A.聚合函數(shù)可以對多行進行一些計算,然后得到一個結(jié)果得。

B.Count(*)計算結(jié)果的總行數(shù),包括含有null值的行。

C.Sum(col)計算col列值的和。

D.Avg(distmctcol)計算排重后值的平均

10、下列關(guān)于Select語句的描述口正確的是:

A.select子句是SQL的投影算子,用于指定查詢表的那些列,后面可以跟列列表、表達式、

集合函數(shù)等。

B.from子句用于指定查詢的數(shù)據(jù)來源于哪個表,后面可以跟表、視圖、子查詢等。

C.where子句用于指定對表中數(shù)據(jù)進行篩選的條件,后面跟條件表達式(謂詞表達式)。

D.groupby子句用于對查詢結(jié)果進行分組,一般情況下配合聚合函數(shù)一起使用,對每一組

數(shù)據(jù)進行聚合處理。

11、關(guān)于連接查詢的優(yōu)化,正確的是:

A.連接操作時,左表中的每一行都需要與右表中的每一行進行比較,判斷是否滿足連接條

件,因此沒有什么好的優(yōu)化策略。

B.保證表的大小從左到右依次增加

C.先進行篩選操作,再進行連接

D.先將兩個表做笛卡爾積,然后通過wheie子句篩選需要的數(shù)據(jù)行。

12、HQL中的排序子句相比于關(guān)系型數(shù)據(jù)庫的排序語句稍有啊下列說法正確的是:

A.HQL排序語句有Orderby和Sortby兩種,兩個子句的效果一樣,可以相互替換。

B.Oderby是全局排序子句,所有數(shù)據(jù)通過一個reduce處理,數(shù)據(jù)全局有序,其缺點是

性能較低。

C.Sortby是局部排序子句,數(shù)據(jù)由多個reduce處理,Sortby保證數(shù)據(jù)在每個reduce之

內(nèi)有序,不保證數(shù)據(jù)在reduce之間有序。

D兩種排序語句在只有一個reducer處理結(jié)果數(shù)據(jù)的時候,效果一樣。如果設置多個reducer

處理結(jié)果數(shù)據(jù),則排序的結(jié)果不一樣。

13、關(guān)于下列HQL語句的理解,正確的是:

hive(library)>setmapreduce.job.reduces=10;

hive(library)>selects.ymd,s.symbol,s.price_close

>fromstockss

>distributebys.symbol

>sortbys.ymdASC,s.symbolDESC

>limit150

>;____________________________________________________________________________

A.setmapreduce.job.reduces=10;用于設置查詢語句所對應的mapreducejob在reduce階

段使用10個reducer來處理數(shù)據(jù)。

B.sortbys.ymdASC,s.symbolDESC用于指定排序的字段、方式以及數(shù)據(jù)排序的范圍。

C.distributebys.symbol用于指定s.symbol哈希值相同的數(shù)據(jù)放入一個reducer中進行處

理。

D.上面的HQL語句中的distributeby和sortby可以使用clusterby替換。

14、編寫HQL查詢語句的時候,常常需要進行數(shù)據(jù)的比較、運算等操作,當參與比較或運

算的兩個數(shù)的數(shù)據(jù)類型不一致時,需要使用相應的數(shù)學函數(shù)、字段串處理函數(shù)等進行處理.

此外,Hive提供了一種通用的類型轉(zhuǎn)換函數(shù)CAST,下列關(guān)于CAST說法正確的是:

A.cast是Hive提供的一種顯式地進行數(shù)據(jù)類型轉(zhuǎn)換的函數(shù)。當Hive自動進行的隱式數(shù)據(jù)

類型轉(zhuǎn)換不能滿足需求時,可以使用cast進行類型轉(zhuǎn)換。

B.Cast函數(shù)的語法:cast(valueastype),value表示需要轉(zhuǎn)換的數(shù)據(jù),type表示轉(zhuǎn)換后的數(shù)

C.Hive提供的隱式數(shù)據(jù)類型轉(zhuǎn)換能轉(zhuǎn)換一切數(shù)據(jù)的類型為正確類型,用戶幾乎不需要考慮

類型轉(zhuǎn)換的問題。

D.cast屬于萬能轉(zhuǎn)換函數(shù),能將數(shù)據(jù)轉(zhuǎn)換成我們希望的任何類型。

15、Hive中的抽樣查詢,指的是從大量的數(shù)據(jù)集中根據(jù)指定的方式抽取具有代表意義的子

集,Hive提供了以下哪幾種抽樣的方式:

A.桶抽樣,從指定的桶中抽取數(shù)據(jù)。

B.隨機抽樣,從隨機函數(shù)指定的桶中抽取數(shù)據(jù).

C.數(shù)據(jù)塊抽樣,根據(jù)行數(shù)、數(shù)據(jù)量、百分比等方式抽取大數(shù)據(jù)集中的部分數(shù)據(jù)。

D.表抽樣,使用where子句選擇滿足條件的行。

16、下列屬于WordCountMapReduce程序邏輯處理階段的是:

A.散據(jù)切片上

B.Map階段進行單詞切分,對每個出現(xiàn)的單詞以<單詞,作為輸出鍵值對。

C,進行內(nèi)部的分組、排序等操作。

D.Reduce階段進行規(guī)約操作,統(tǒng)計每個單詞出現(xiàn)的次數(shù)。然后以(單詞,次數(shù)〉作為輸出

鍵值對輸出到指定的目

17、常用的日志數(shù)據(jù)清洗任務主要包括:

A.轉(zhuǎn)換數(shù)據(jù)的編碼。

B.去除不符合要求的數(shù)據(jù)行。

C.添加列數(shù)據(jù)、去除不需要的列數(shù)據(jù)。

D.多列合并成一列或一列分裂成多列。

E.修改列數(shù)據(jù)為希望的形式。

18、sogou用戶訪問日志分析的關(guān)鍵指標可以包括:

A.用戶總數(shù)、活躍用戶數(shù)

B.活躍用戶的占比。

C.熱門話題(檢索次數(shù)排前的關(guān)鍵字)

D.熱門話題與用戶的關(guān)系

E.檢索結(jié)果URL點擊分別情況。

19、下列與大數(shù)據(jù)ETL課程相關(guān)的linux命令正確的是:

A.啟動Hadoop所有模塊的命令:start-all.sh

B.解壓JDK.tar.gz格式的安裝包:tar-zxvf./jdk-8u202-linux-x64.tar.gz

C.安裝Mysqlrpm格式的包1Pm-ivhmysql-community-server-57.21-l.el7.x86.64.rpm

D.查看分布式文件系統(tǒng)的根目錄:Is/

20、數(shù)據(jù)倉庫之父比爾?恩門(BillInmon)在1991年出版的TuildingtheData

Warehouse15(《建立數(shù)據(jù)倉庫》)一書中所提出并被廣泛接受的關(guān)于數(shù)據(jù)倉庫的定義

是:數(shù)據(jù)倉庫(DataWarehouse)是一個:

A.面向主題的(SubjectOriented)

B.集成的(Integrated)

C.相對穩(wěn)定的(Non-Volatile)

D.反映歷史變化(TimeVariant)的數(shù)據(jù)集合,用于支持管理決策(DecisionMaking

Support)o

三、HQL應用題(每題10分)

1、創(chuàng)建一個包含sidmame,class,specility(學院)四個字段既分區(qū)又分桶的表students。分區(qū)字

段自定義,分桶字段為sid,每個分區(qū)分4個桶.

答案:

HQL語句:

Createtablestudent(

Sidint,

Namestring,

Classstring,

Specilitystring)

Partitionedby(name)

Clusteredby(sid)sortedby(name)into4bucket

Rowformatdelimitedfieldsterminatedby;

2、從employees表中查詢name和salary列的數(shù)據(jù),并根據(jù)salary的值進行等級劃分。

Salary<50000.0等級為‘low';50000.0<=salary<70000.0等級為‘middle';

7000.0<=salary<100000.0等級為‘high',100000.0<=salary等級為'veryhigh'。HQL

最終執(zhí)行的結(jié)果如下圖所示:

namesalarybracket-

JohnDoe100000.0veryhigh

MarySmith80000.0high

ToddJones70000.0high

BillKing60000.0middle

BossMan200000.0veryhigh

FredFinance150000.0veryhigh

答案:

HQL語句:

Selectname,salary

Case

Whensalary<5000the'low'

Whensalary>=5000andsalary<=7000then'middle'

Whensalary>=7000andsalary<=10000then'high'

Else'veryhigh,

ndAsbracket

romemployess;

3、employees表結(jié)構(gòu)及部分數(shù)據(jù)如下圖所示:

nonesalarysubordinatesdeductionsaddress

JohnOoe1009G6.G("MarySmith",'ToddJones"]{'FederalTaxes":0.2,"StateTaxes":9.G5

/Insurance*:0.1}{'jtrMf:'lMichiganAvt.','city":"Chicago","stat#':'IL".'zip":66600)

HarySnith89060.9("BillKing"]{"FederalTaxes':0.2,"StateTaxes":nuU,'.65":nuU,"Insurance":

nuU/.l":null)("street':'ieeOntarioSt.M,"city":-Chicago-,-state":"If,"zip-:66601)

ToddJones7000G.0[]{"FederalTaxes":0.15,"StateTexes":0.03,'Insurance":0.1}{'stree

t":"2OOChicagoAve."."city-:"OakPark","state-:"IL','zip":66709)

BiUKing60000.9(]{?FederalTaxes":0.15,'StateTexes":9.03,■Insurenct-iO.l){'stree

t":a396ObscureDr.",'city':'Obscuria","state":"IL",'zip':6G10G)

BossHan20000G.0['JohnDot"."FredFinanct']{"FtdtralTexts-:0.3,'StateTaxes':0.07

,"Insurance":0.05}fstreef:-!PretentiousDrive.","city":"Chicago",'state':'IL"."zip":6G5O0}

FredFinance150000.G["StacyAccountant']('FederalTaxes":0.3,'StateToxes":0.07,"Insure

nce":0.G5){"street":"2PretentiousDrive."."city':"Chicago","state":"IL',"zip":6050G)

StacyAccountant60090.0[]{'FederalTaxes":G.15,"StateTaxes":0.03,"Insurance":0.1)(

根據(jù)要求完成下列HQL語句。

(1)、統(tǒng)計出employees表中的員工數(shù)以及員工的平均薪水、最大薪水、總的薪水。

HQL語句:

Select

round(avg(salary))as平均薪水,

max(salary)as'最高薪水、,

sum(salary)as'總的薪水'

fromemployees;

(2)、通過行轉(zhuǎn)列函數(shù)將employees表中subordinates(下屬)字段的數(shù)據(jù)由行轉(zhuǎn)列顯示。

轉(zhuǎn)化后的結(jié)果如圖所示:

轉(zhuǎn)換前:

namesubordinates

JohnDoe["MarySmith","ToddJones"]

MarySmith["BillKing"]

ToddJones[]

BillKing[]

BossMan["JohnDoe","FredFinance"]

FredFinance["StacyFAccountant"]

StacyAccountant[]

Timetaken:0.643seconds,Fetched:7row(s)

轉(zhuǎn)換后:

MarySmith

FoddJones

BillKing

JohnDoe

FredFinance

StacyAccountant

HQL語句:

Selectname,subordinatesfromemploees;

Selectexplode()assubfromemployees;

(4)、下面是一段用于數(shù)據(jù)清洗的MapReduce程序,請在相應位置標出程序代碼的中文含義。

publicclassSogouLogFilter

(

publicstaticclassSogouLogFi1terMapperextends

Mapper<LongWritab1c,Text,Text,NullWritablc>

(

publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throws

lOException,InterruptedException{

Stringline=newString(value.getBytes0,0,value.getLengthO,"GBK");

上述標紅代碼中文含義:

轉(zhuǎn)換每行數(shù)據(jù)的編碼從GBK到UTF8編碼

String[]words=line,split(*\\s+*);

上述標紅代碼中文含義:

按照空白符切分行數(shù)據(jù),切分成一個個的字符串,放入String類型的數(shù)組words中。

if(words,length!=6){

return;

)

Stringaccesstime=words[0].replaceAll(*[[\\s-:punct:]]*?;

上述標紅代碼中文含義:

去除時間字符串中的橫杠、空格、冒號等特殊符號。

words[0]="2020051O^+accesstims;

Stringnewline=String.joinC,*,words);

上述標紅代碼中文含義:

將數(shù)組words中的字符串元素重新組裝成新的字符串,保存在string變量newline中。

context,write(newText(newline),NullWritable.get());

}

)

四、綜合應用題(每題20分)

1、Hive中sogou表的結(jié)構(gòu)如下,圖中從左至右各字段分別表示用戶檢索信息的year(年)、

month(月)、day(日)、userid(用戶id),keyword(檢索關(guān)鍵字)、Rank(點擊的網(wǎng)址在結(jié)果

集的排名)、Clickid(點擊順序號)、URL(詳細內(nèi)容的網(wǎng)址)。

206668630OeG3959536232fi68O18的,。引21

淵Ma懈0扭4449腑用79n1IAM.pcict.co^Artlcb.ShM.Mp?ArtKbKM2n503

6300603374449090620679(TAMIit2M.pucb.cWArtld■.加w,螂謂rUclMM221503

2Wee630MGM川弼強嫌79U3ko.lS380.n?t/A?wjMw.MpUd>3d8的

㈱6tt63eW0337444999M20679124ko.16388..?sp^id>38803

eeS3懈0沏444媯K席?9|「仙同126ko.U38d.Mt/MwisviM.asph>308的

ee的ett的94449㈱1期也(mm14SMMJ]Rdbbs.coa/bbs/YiMhrMd.php?tldil3SS3tpi9HU的

M的懈0如63帆加泓1段電火V、置11AM.nty.mt/yq/2J24J376.htil的

㈱ee03娥3M勵的128訓網(wǎng)電火快川3d3Mv.yixia.Nt/tiiV47i.htal03

椒oe03懶如物的口幽314MMmysM.coi^ii^/qy-rsb/wdix.hta03

03幽如6如的127s現(xiàn)伸㈣火的淵92MM.iiS/priflt^9i.asp^oardl(MUd?93203

2■et的娥J制2〃加為外1蚓S1MM.Olito.co^bbs/Mw/topic12M4.hta03

根據(jù)上面的結(jié)構(gòu)完成以下的HQL語句。

(1)、統(tǒng)計搜索過于“手機”相關(guān)話題的用戶,以及用戶搜索的次數(shù)。HQL執(zhí)行的部分結(jié)果

如下所示。(只顯示前toplO的行)

useridnumber_of_searches

26439282971695504-69

2677948020796599466

463826373279404759

480339791296243658

655515034610326957

493134945075533355

443784930172805154

221361668551410153

0327287485791525350

545298256312095849

HQL語句:

selectuserid,count(*)asnumber_of_searches

fromsogou

wherekeywordlike"%手機財

groupbyuserid

orderbynumber_of_searchesDESClimit10;

(2)、統(tǒng)計檢索信息最活躍的3個用戶,并找出其關(guān)注的話題。HQL執(zhí)行部分結(jié)果如下所

6383499980796535[深圳思創(chuàng)科技發(fā)展有國公司】

6383499980790535【深圳市科網(wǎng)聯(lián)計算機技術(shù)有限公司】

6383499980790535【深圳市移聯(lián)通信技術(shù)有限責任公8n

6383499980790535[深圳市移送通信技術(shù)有限費任公司】

6383499980790535【深圳市移聯(lián)通侑技術(shù)有限責任公司】

6383499980790535【深圳市移農(nóng)通愷技術(shù)有限責任公司]

638349998G790535[深圳市華伯通訊設備有限公司]

6383499980790535【深圳市天侑達科技有限公司】

6383499980790535【科通軟件技術(shù)《深圳)有限公司]

6383499980790535【科通軟件技術(shù)《深圳)有限公司)

6383499980790535

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論