




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
HiveQL—數據操作創建數據集創建表:createtablewordcount(wordstring,freqint)rowformatdelimitedfieldsterminatedby'\t'storedastextfile;生成數據:在hdfs上創建input目錄,將數據文件上傳到input目錄下,執行程序,生成wordcount數據hadoopjar$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jarwordcount/input/yarn*/output裝入數據:loaddatainpath"/output/part-r-00000"intotablewordcount;HiveQL查詢SELECTnameFROMsalesWHEREamount>8ANDregion="shanghai";SELECTcount(*)counter,regionFROMsalesGROUPBYregionHAVINGcounter>2;select*fromwordcountlimit10;select*fromwordcountwherefreq>10orderbyfreqdesclimit10;HiveQL查詢數組列:selectname,subordinatesfromemployees;selectname,subordinates[0]fromemployees;map
selectname,deductions["grtaxes"]fromemployees;struct
selectname,address.cityfromemployees;使用列值進行計算selectsalary,deductions["grtaxes"],salary*(1-deductions["grtaxes"])fromemployees;嵌套select語句select,e.salary,e.salary_shfrom(selectname,salary,deductions["grtaxes"]asgr_taxes,round(salary*(1-deductions["grtaxes"]))assalary_shfromemployees)ewheree.salary_sh>2000;通過查詢語句向表中插入數據insert允許用戶通過查詢語句向目標表中插入數據insertoverwrite[into]tablestock_tpartition(ymd='20170929')selectsymbol,price_open,price_high,price_low,price_close,volumefromstockswhereymd='20170929';通過查詢語句向表中插入數據fromstocksinsertoverwritetablestock_tpartition(ymd='20170928')selectsymbol,price_open,price_high,price_low,price_close,volumewhereymd='20170928'insertoverwritetablestock_tpartition(ymd='20170929')selectsymbol,price_open,price_high,price_low,price_close,volumewhereymd='20170929'insertoverwritetablestock_tpartition(ymd='20170930')selectsymbol,price_open,price_high,price_low,price_close,volumewhereymd='20170930';動態分區插入Hive提供了一個動態分區功能,可以基于查詢參數推斷出需要創建的分區名稱insertoverwritetablestock_tpartition(ymd)selectsymbol,price_open,price_high,price_low,price_close,volume,ymdfromstocks;動態分區功能默認情況下是沒有開啟的,需要將hive.exec.dynamic.partition.mode設置為nonstrict導出數據從表中導出數據如果文件恰好是用戶需要的格式,那么只需要簡單拷貝文件夾或者文件就可以了。
hadoopfs-cpsource_pathtarget_path否則,用戶可以使用insert…directory…insertoverwrite[local]directory'/home/hadoop/emp'selectname,salary,addressfromemployees;關系運算空值判斷selectname,salaryfromemployeeswheresalaryisnull;LIKE比較selectname,salaryfromemployeeswherenamelike'l%';浮點數比較(可選)浮點數比較的一個常見問題是出現在不同類型做比較(float和double比較)selectname,salary,deductions["grtaxes"]fromemployeeswheredeductions[“grtaxes”]>0.2;對指定的值進行顯示的類型轉換selectname,salary,deductions["grtaxes"]fromemployeeswheredeductions["grtaxes"]>cast(0.2asfloat);數學函數取整函數selectround(3.1415)fromemployees;指定精度取整函數selectround(3.1415,2)fromemployees;向下取整函數selectfloor(3.1415)fromemployees;向上取整函數selectceil(3.1415)fromemployees;取隨機數函數selectrand()fromemployees;
字符串函數
字符串長度函數selectlength(name)fromemployees;字符串連接函數selectconcat(name,'@')fromemployees;字符串截取函數selectsubstr(name,2)fromemployees;selectsubstr(name,1,2)fromemployees;字符串轉大寫函數selectupper(name)fromemployees;去空格函數
selecttrim(name)fromemployees;
聚合函數個數統計函數selectcount(*)fromemployees;總和統計函數selectsum(salary)fromemployees;平均值統計函數
selectavg(salary)fromemployees;最小最大值selectmin(salary),max(salary)fromemployees;數據表的join—innerjoinselecta.ymd,a.symbol,a.price_close,b.symbol,b.price_closefromstocksajoinstocksbona.ymd=b.ymdwherea.symbol='600718'andb.symbol='002230';ON子句指定了兩個表之間數據連接的條件數據表的join—innerjoin多表連接selecta.ymd,a.symbol,a.price_close,b.symbol,b.price_close,
c.symbol,c.price_close
fromstocksajoinstocksbona.ymd=b.ymd
joinstockscona.ymd=c.ymd
wherea.symbol='600718'andb.symbol='002230'andc.symbol='000977';數據表的join—innerjoin練習產生數據集countword,將countword和之前產生的另外一個wordcount數據集進行聯合查詢創建一個中間數據表merged,用于存儲查詢結果將兩個數據集的交集保存在數據表merged中數據表的join—leftouterjoin左外連接通過關鍵字leftouter進行標識selects.ymd,s.symbol,s.price_close,d.dividendfromstockssleftouterjoinstocks_divdons.ymd=d.ymdands.symbol=d.symbol;數據表的join—Rightouterjoin右外連接將返回右邊表所有符合where語句的記錄,左邊表中匹配不上的字段值用null代替。selects.ymd,s.symbol,s.price_close,d.dividendfromstocks_divdrightouterjoinstockssons.ymd=d.ymdands.symbol=d.symbol;數據表的join—Fullouterjoin完全外連接會返回所有表中符合where語句條件的所有記錄,如果任一表的指定字段沒有符合條件的值,那么就會使用null值代替。selects.ymd,s.symbol,s.price_close,d.dividendfromstocks_divdfullouterjoinstockssons.ymd=d.ymdands.symbol=d.symbol;數據表的join—leftsemijoinleftsemijoin(左半開連接)類似exists。即查找a表中的數據,是否在b表中存在,找出存在的數據。selects.ymd,s.symbol,s.price_closefromstockssleftsemijoinstocks_divdons.ymd=d.ymdands.symbol=d.symbol;笛卡爾積join笛卡爾積是一種連接,表示左邊表的行數乘以右邊表的行數等于笛卡爾結果集的大小。select*fromstocksjoinstocks_div;Orderby和SortbyOrderby會對查詢結果集執行一個全局排序,所有的數據都通過一個reducer進行處理。Sortby會在每個reducer中對數據進行排序,保證每個reducer的輸出數據都是有序的,這樣可以提高后面進行的全局排序的效率。select*fromwordcountwherefreq>10orderbyfreqdesclimit10;select*fromwordcountwherefreq>10sortbyfreqdesclimit10;DistributebyDistributeby控制map的輸出在reducer中的劃分使用Distributeby來保證具有相同值的數據被分發到同一個reducer中進行處理,然后使用sort
by對數據進行排序。selectymd,symbol,price_closefromstocksdistributebysymbolsortbysymbol,ymd;抽樣查詢對于非常大的數據集,用戶有時需要使用的是一個具有代表性的查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省揚州市高郵市重點中學2024-2025學年初三下第二次月考試題含解析
- 家居色彩搭配培訓課件
- 滅火器使用方法及注意事項培訓
- 2025混凝土承包合同簡易范本
- 2025紫菜軟件ERP實施服務合同
- 2025年簽訂買賣合同需留意的法律問題
- 2025存量房居間買賣合同
- 2025國內域名轉讓合同范本
- 2025智能音箱采購合同
- 2025手游代理合同范文
- 國企統戰工作總結匯報
- 《含能材料與應用》課件
- 土地管理法實施條例考試試題
- 真實的PBL真實的挑戰:項目式學習設計指南
- 水果批發市場項目商業計劃書
- 前庭大腺囊腫護理查房課件
- 十四五國家臨床專科能力建設規
- 高考數學刷題:全國一模套卷(12套含答案)
- 綠化人員缺崗應急預案
- JGJ366-2015 混凝土結構成型鋼筋應用技術規程
- 土木工程材料試題(5套)
評論
0/150
提交評論