Hive學(xué)習(xí)筆記2

  • Hive 的數(shù)據(jù)導(dǎo)入: 可以使用Load命令導(dǎo)入县匠,也可以使用Sqoop組件導(dǎo)入數(shù)據(jù)。
  • Hive不支持insert插入單條語句
  • Hive的數(shù)據(jù)查詢
  • Hive的Java客戶端和自定義函數(shù)

Hive執(zhí)行l(wèi)oad導(dǎo)入數(shù)據(jù)撒轮。

load data local inpath ‘/root/data/student01.txt’ into table t2;

local 表示數(shù)據(jù)從本地操作系統(tǒng)中導(dǎo)入乞旦。如果不寫local表示從hdfs中導(dǎo)入。

local data local inpath ‘/root/data/student02.txt’ into table t3;

將/root/data 下的所有數(shù)據(jù)導(dǎo)入t3表中题山,并且覆蓋原來的數(shù)據(jù) load data local inpath ‘/root/data/’ overwrite into table t3

將HDFS中兰粉,/input/student01.txt導(dǎo)入到t3 load data inpath ‘/input/student01.txt’ overwrite into table t3;

load data local inpath ‘/root/data/data1.txt’ into table partition_table partition (gender=’M’);

Sqoop 數(shù)據(jù)的導(dǎo)入和導(dǎo)出

關(guān)于sqoop的導(dǎo)入和導(dǎo)出很簡單,直接下載壓縮包顶瞳,然后解壓玖姑,設(shè)置兩個環(huán)境變量就可以。

設(shè)置第一個環(huán)境變量:

  • export HADOOP_COMMON_HOME=….(hadoop的安裝目錄)
  • export HADOOP_MAPRED_HOME=….(MapReduce的目錄慨菱,這個目錄和hadoop目錄一般一樣)
  1. 使用Sqoop導(dǎo)入Oracle數(shù)據(jù)到HDFS中:
    ./sqoop import –connect jdbc:oracle:thin:@192.168.56.101:1521:orcl –username scott –password tiger –table emp –columns ‘empno, ename, job, sal, deptno’ -m 1 –target-dir ‘/sqoop/emp’
    但是這樣指向會報錯焰络,因為需要jdbc驅(qū)動,需要把oracle的jdbc傳入到sqoop的lib目錄下抡柿。
    這樣就會成功執(zhí)行sqoop的數(shù)據(jù)導(dǎo)入和導(dǎo)出舔琅,整個執(zhí)行過程就是通過MapReduce來完成的,
  2. 使用sqoop導(dǎo)入oracle數(shù)據(jù)到Hive中
    ./sqoop import –hive-import –connect jdbc:oracle:thin:@192.168.56.101:1521:orcl –username scott –password tiger –table emp -m 1 –columns ‘empno,ename,job,sal,deptno’
  3. 使用sqoop導(dǎo)入oracle數(shù)據(jù)到Hive中洲劣,并且指定表名
    ./sqoop import –hive-import –connect jdbc:oracle:thin:@192.168.56.101:1521:orcl –username scott –password tiger –table emp -m 1 –columns ‘empno,ename,job,sal,deptno’ –hive-table emp1
  4. 使用sqoop導(dǎo)入oracle數(shù)據(jù)到hive表中备蚓,并使用where條件
    ./sqoop import –hive-import –connect jdbc:oracle:thin:@192.168.56.101:1521:orcl –username scott –password tiger –table emp -m 1 –columns ‘empno,ename,job,sal,deptno’ –hive-table emp1 –where ‘DEPTNO=10’
  5. 使用sqoop導(dǎo)入oracle數(shù)據(jù)到hive中课蔬,并使用查詢語句
    ./sqoop import –hive-import –connect jdbc:oracle:thin:@192.168.56.101:1521:orcl –username scott –password tiger -m 1 –query ‘SELECT * FROM EMP WHERE SAL<2000 AND $CONDITIONS’ –target-dir ‘/sqoop/emp5’ –hive-table emp5
    這里需要注意的是$CONDITIONS
  6. 使用sqoop將hive中的數(shù)據(jù)導(dǎo)出到oracle數(shù)據(jù)庫中。
    ./sqoop export –connect jdbc:oracle:thin:@192.18/56.101:1521:orcl –username soctt –password tiger -m 1 –table MYEMP –export-dir …..

Hive的數(shù)據(jù)查詢

在hive中進行數(shù)據(jù)操作的時候郊尝,總是將查詢轉(zhuǎn)換成一個MapReduce任務(wù)進行執(zhí)行二跋,但是對于簡單的任務(wù)是沒有必要轉(zhuǎn)成一個MapReduce任務(wù)執(zhí)行的,這個時候就可以配置一個fetch task功能流昏,讓fetch task功能支持簡單的數(shù)據(jù)的操作扎即。

配置方式有以下幾種:

  • 在hive的命令提示符下面執(zhí)行:set hive.fetch.task.conversion=more;
  • 在啟動hive命令提示符的時候,加一個參數(shù)也可以開啟這個功能:hive –hiveconf hive.fetch.task.conversion=more
  • 修改hive-site.xml文件

前兩種方式都可以配置這個功能况凉,但是這種配置都是臨時的谚鄙。可以修改hive-site.xml文件使其永久有效刁绒。

修改hive-site.xml文件闷营,加一行屬性:

<property>
<name>hive.fetch.task.conversion</name>
<value>more</value>
</property>

Hive的函數(shù):

  • 內(nèi)置函數(shù)
  • 自定義函數(shù)

數(shù)學(xué)函數(shù):

  • round 四舍五入
  • ceil 向上取整
  • floor 向下取整

select round(45.926, 2); 45.926保留兩位小數(shù),最終結(jié)果是45.93

字符函數(shù):

  • lower
  • upper
  • length
  • concat
  • substr
  • trim
  • lpad
  • rpad

select lower(‘Hello WORLD’), upper(‘hhhh’) select length(‘HelloWorld’) ….
lpad:左填充 rpad:右填充
select lpad(‘a(chǎn)bcd’, 10, ‘’), rpad(‘a(chǎn)bcd’, 10, ‘’)
收集函數(shù)

  • size

size(map(<key, value>, <key, value>));

轉(zhuǎn)換函數(shù)

  • cast

select cast(1 as bigint); select cast(‘2015-08-10’ as date);

日期函數(shù)

  • to_date
  • year
  • month
  • day
  • weekofyear
  • datediff
  • date_add
  • date_sub

條件函數(shù)

  • coalesce:從左到右返回第一個不為null的值
  • case … when … : 條件表達式

聚合函數(shù):

  • count
  • sum
  • min
  • max
  • avg

表生成函數(shù)

  • explode

Hive的表連接

  • 等值連接
  • 不等值連接
  • 外連接
  • 自連接

等值連接:

select e.empno, e.ename, e.sal, e.dname from emp e, dept d where e.deptno=d.deptno;

不等值連接:

外連接:

通過外連接可以將對于連接條件不成立的記錄任然包含在最后的結(jié)果中:其中分成:

  • 左外連接
  • 右外連接

Hive的子查詢:

Hive的java客戶端操作:

首先需要啟動Hive遠程服務(wù):hive –service hiveserver

  • JDBC
  • Thrift Client

Hive的JDBC客戶端操作:

  • 獲取連接
  • 創(chuàng)建運行環(huán)境
  • 執(zhí)行HQL
  • 處理結(jié)果
  • 釋放資源

hive-jdbc-…jar 這個就是hive的jdbc文件知市。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傻盟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嫂丙,更是在濱河造成了極大的恐慌娘赴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跟啤,死亡現(xiàn)場離奇詭異诽表,居然都是意外死亡,警方通過查閱死者的電腦和手機腥光,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門关顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人武福,你說我怎么就攤上這事议双。” “怎么了捉片?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵平痰,是天一觀的道長。 經(jīng)常有香客問我伍纫,道長宗雇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任莹规,我火速辦了婚禮赔蒲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己舞虱,他們只是感情好欢际,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矾兜,像睡著了一般损趋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椅寺,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天浑槽,我揣著相機與錄音,去河邊找鬼返帕。 笑死桐玻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荆萤。 我是一名探鬼主播畸冲,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼观腊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起算行,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤梧油,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后州邢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體儡陨,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年量淌,在試婚紗的時候發(fā)現(xiàn)自己被綠了骗村。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡呀枢,死狀恐怖胚股,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裙秋,我是刑警寧澤琅拌,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站摘刑,受9級特大地震影響进宝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枷恕,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一党晋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦未玻、人聲如沸灾而。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绰疤。三九已至,卻和暖如春舞终,著一層夾襖步出監(jiān)牢的瞬間轻庆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工敛劝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留余爆,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓夸盟,卻偏偏與公主長得像蛾方,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子上陕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容