數(shù)據(jù)倉庫Hive應(yīng)用實(shí)戰(zhàn) 教案89-92課時(shí):HIVE內(nèi)置函數(shù)(二)_第1頁
數(shù)據(jù)倉庫Hive應(yīng)用實(shí)戰(zhàn) 教案89-92課時(shí):HIVE內(nèi)置函數(shù)(二)_第2頁
數(shù)據(jù)倉庫Hive應(yīng)用實(shí)戰(zhàn) 教案89-92課時(shí):HIVE內(nèi)置函數(shù)(二)_第3頁
數(shù)據(jù)倉庫Hive應(yīng)用實(shí)戰(zhàn) 教案89-92課時(shí):HIVE內(nèi)置函數(shù)(二)_第4頁
數(shù)據(jù)倉庫Hive應(yīng)用實(shí)戰(zhàn) 教案89-92課時(shí):HIVE內(nèi)置函數(shù)(二)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南汽車工程職業(yè)學(xué)院教師授課教案第12周第1-4課時(shí)累計(jì)92課時(shí)課程名稱數(shù)據(jù)倉庫HIVE應(yīng)用授課課題HIVE內(nèi)置函數(shù)(二)授課專業(yè)班級大數(shù)據(jù)2101班、2102班、2103班教學(xué)目標(biāo)1、掌握日期函數(shù)的運(yùn)用2、掌握類型轉(zhuǎn)換函數(shù)的運(yùn)用教學(xué)要點(diǎn)教學(xué)重點(diǎn)日期函數(shù)和類型轉(zhuǎn)換函數(shù)的運(yùn)用教學(xué)難點(diǎn)應(yīng)用日期函數(shù)和類型轉(zhuǎn)換函數(shù)解決實(shí)際問題課型一體化授課教法與學(xué)法(教具)示范演示法、任務(wù)驅(qū)動教學(xué)法、分組合作教學(xué)法課后作業(yè)完成超星學(xué)習(xí)平臺作業(yè)、看視頻熟練操作教學(xué)后記(教師課后填寫)1、結(jié)合項(xiàng)目要多練;2、鼓勵學(xué)生之間要相互請教、相互幫忙,合作解決問題,有利于他們能力的增長;3、掌握思維導(dǎo)圖對于知識體系構(gòu)建的重要性。授課教師王海霞、黃史記【課前復(fù)習(xí)】常見的聚合函數(shù)有哪些,各有什么用?【作業(yè)點(diǎn)評】展示智課堂學(xué)生作業(yè)完成情況,并做點(diǎn)評?!緦W(xué)習(xí)目標(biāo)】以“學(xué)生信息系統(tǒng)”項(xiàng)目為實(shí)操載體,完成類型轉(zhuǎn)換函數(shù)和日期函數(shù)在實(shí)際問題中的使用。【課程導(dǎo)入】前面我們已經(jīng)認(rèn)識了常用的內(nèi)置函數(shù)(聚合函數(shù)、集合函數(shù)、數(shù)學(xué)函數(shù)),今天繼續(xù)學(xué)習(xí)類型轉(zhuǎn)換函數(shù)和日期函數(shù),掌握其基本操作。【新課講授】一、類型轉(zhuǎn)換函數(shù)類型轉(zhuǎn)換函數(shù)是對查詢結(jié)果的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,適用于基本數(shù)據(jù)類型數(shù)據(jù)的操作。以下通過表6-4介紹Hive內(nèi)置的類型轉(zhuǎn)換函數(shù)。表6-SEQ表6-\*ARABIC4Hive內(nèi)置的類型轉(zhuǎn)換函數(shù)類型轉(zhuǎn)換函數(shù)名返回值類型用法描述BINARY()BINARYBINARY(string|binary):將列中的值轉(zhuǎn)為二進(jìn)制。CAST()TYPECAST(expr

as

<type>):將expr轉(zhuǎn)換成數(shù)據(jù)類型type。如:cast("1"asBIGINT)將字符串1轉(zhuǎn)換成了BIGINT類型,如果轉(zhuǎn)換失敗將返回NULL【講練結(jié)合】【例6-10】使用CAST函數(shù)將每個(gè)學(xué)生Hive課程成績轉(zhuǎn)換成INT格式。SELECTstname,course_scores['Hive'],CAST(course_scores['Hive']asINT)FROMstudentdb.student;圖6-SEQ圖6-\*ARABIC14學(xué)生Hive課程成績轉(zhuǎn)換成INT格式【新課講授】一、日期函數(shù)日期函數(shù)是對日期數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行操作,以下通過表6-5介紹Hive內(nèi)置的日期函數(shù)。表6-SEQ表6-\*ARABIC5Hive內(nèi)置的日期函數(shù)日期函數(shù)名返回類型用法描述FROM_UNIXTIME()STRINGFROM_UNIXTIME(BIGINT

unixtime,

STRING

format):將unixtime(UNIX時(shí)間戳)轉(zhuǎn)換成format格式,format可為“yyyy-MM-dd

HH:mm:ss”,“yyyy-MM-dd”,“yyyy-MM-dd

HH”等等。若HH為小寫hh則使用12小時(shí)制。UNIX_TIMESTAMP()BIGINTUNIX_TIMESTAMP():獲取本地UNIX時(shí)間戳。UNIX_TIMESTAMP(STRING

date):將日期字符串date轉(zhuǎn)換為UNIX時(shí)間戳。TO_DATE()STRINGTO_DATE(STRING

date):獲取日期字符串date的日期。YEAR()INTYEAR(STRING

date):獲取日期字符串date的年。QUARTER()INTQUARTER(STRING

date):獲取日期字符串date所屬的季度。HOUR()INTHOUR(STRING

date):獲取日期字符串date的小時(shí)。MINUTE()INTMINUTE(STRING

date):獲取日期字符串date的分鐘。SECOND()INTSECOND(STRING

date):獲取日期字符串date的秒。WEEKOFYEAR()INTWEEKOFYEAR(STRING

date):獲取日期字符串date在一年中的第幾周。DATEDIFF()INTDATEDIFF(STRING

enddate,

STRING

startdate):計(jì)算從開始日期startdate到結(jié)束日期enddate相差多少天。DATE_ADD()STRINGDATE_ADD(STRING

startdate,

INT

days):返回開始日期startdate加上天數(shù)days的日期,不包含時(shí)間。DATE_SUB()STRINGDATE_SUB(STRING

startdate,

INT

days):返回開始日期startdate減去天數(shù)days的日期,不包含時(shí)間。FROM_UTC_TIMESTAMP()TIMESTAMPFROM_UTC_TIMESTAMP(STRING

date,

STRING

timezone):如果給定的時(shí)間date并非UTC,則將其轉(zhuǎn)化成指定的時(shí)區(qū)timezone下時(shí)間。CURRENT_DATE()DATECURRENT_DATE():獲取當(dāng)前日期不包括時(shí)間。CURRENT_TIMESTAMP()TIMESTAMPCURRENT_TIMESTAMP():獲取當(dāng)前日期包括時(shí)間。ADD_MONTHS()STRINGADD_MONTHS(STRING

start_date,

INT

num_months):返回開始日期startdate加上月num_mongths的日期。LAST_DAY()STRINGLAST_DAY(STRING

date):指定日期date所在月的最后一天日期,不包含時(shí)間。NEXT_DAY()STRINGNEXT_DAY(STRING

start_date,

STRING

day_of_week):返回開始日期start_date在下一周day_of_week的日期,其中day_of_week指星期幾,用英文星期一至星期日填寫。TRUNC()STRINGTRUNC(STRING

date,

STRING

format):返回日期date的最開始年或月,若format為MM則返回日期date所在月的第一天日期,若format為YY則返回日期date所在年的第一天日期。MONTHS_BETWEEN()DOUBLEMONTHS_BETWEEN(STRING

date1,

STRING

date2):比較兩個(gè)時(shí)間date1和date2相差幾個(gè)月。DATE_FORMAT()STRINGDATE_FORMAT(STRING

date,

STRING

format):以指定格式format格式化日期date。TO_UTC_TIMESTAMP()TIMESTAMPTO_UTC_TIMESTAMP(STRING

date,

STRING

timezone):如果給定的時(shí)間date是指定時(shí)區(qū)timezone下時(shí)間,則將其轉(zhuǎn)化成UTC下的時(shí)間。ADD_MONTHS()STRINGADD_MONTHS(STRING

start_date,

INT

num_months):返回開始日期startdate加上月num_mongths的日期?!局v練結(jié)合】【例6-11】北京天安門廣場國旗的升降時(shí)間根據(jù)北京的日出日落時(shí)間確定,當(dāng)太陽上部邊緣與天安門廣場所見地平線相切時(shí),為升旗時(shí)間;傍晚,當(dāng)太陽上部邊緣與天安門廣場地平線相平時(shí),為降旗時(shí)間。中華人民共和國成立70周年當(dāng)日的升旗時(shí)間為“2019-10-0106:10:00”,請使用MINUTE()函數(shù)獲取當(dāng)日升旗時(shí)間中的分鐘。SELECTMINUTE("2019-10-0106:10:00")minute;圖6-SEQ圖6-\*ARABIC15使用MINUTE()函數(shù)獲取分鐘以上查詢結(jié)果表明,MINUTE()函數(shù)獲取到日期字符串"2019-10-0106:10:00"中的分鐘?!纠?-12】學(xué)生Zhangdan的生日是每年的12月31日,從今天開始算起,距離Zhangdan生日還有多少天呢?SELECTDATEDIFF(CURRENT_DATE(),"2022-12-31")days;圖6-SEQ圖6-\*ARABIC16使用它DATEDIFF()函數(shù)計(jì)算兩個(gè)日期相差天數(shù)以上查詢結(jié)果表明,通過CURRENT_DATE()函數(shù)獲取當(dāng)前會話時(shí)區(qū)中的當(dāng)前日期,DATEDIFF()函數(shù)獲取到當(dāng)天與"2022-12-31"兩個(gè)日期的相差天數(shù)?!纠?-13】中華人民共和國數(shù)據(jù)安全法于2021年9月1日起施行,至今該法已經(jīng)實(shí)施有多少個(gè)月了,使用MONTHS_BETWEEN()函數(shù)進(jìn)行計(jì)算?SELECTCURRENT_DATE()today,MONTHS_BETWEEN(CURRENT_DATE(),'2021-09-01')up_to_now;圖6-SEQ圖6-\*ARABIC17使用MONTHS_BETWEEN()函數(shù)計(jì)算兩個(gè)日期相差月數(shù)以上查詢結(jié)果表明,MONTHS_BETWEEN()函數(shù)計(jì)算出當(dāng)前日期為2022-11-25,與2021年9月1日相差14.77419355個(gè)月?!纠?-14】使用DATE_SUB()函數(shù)獲取本周一的日期。SELECTCURRENT_DATE()today,DATE_SUB(NEXT_DAY(CURRENT_DATE(),"Monday"),7)

溫馨提示

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

最新文檔

評論

0/150

提交評論