如何在Hive中使用Load語句加載數(shù)據(jù)

這篇文章主要為大家展示了“如何在Hive中使用Load語句加載數(shù)據(jù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何在Hive中使用Load語句加載數(shù)據(jù)”這篇文章吧。

創(chuàng)新互聯(lián)建站企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。

一、Hive中l(wèi)oad語句的語法說明

Hive Load語句不會(huì)在加載數(shù)據(jù)的時(shí)候做任何轉(zhuǎn)換工作,而是純粹的把數(shù)據(jù)文件復(fù)制/移動(dòng)到Hive表對(duì)應(yīng)的地址。語法格式如下:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename \
[PARTITION (partcol1=val1, partcol2=val2 ...)]
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename \
[PARTITION (partcol1=val1, partcol2=val2 ...)] \
[INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)

幾點(diǎn)說明:

  • 如果命令中帶有LOCAL,說明從本地文件系統(tǒng)加載數(shù)據(jù),文件路徑可以是相對(duì)路徑,也可以是絕對(duì)路徑。在這種情況下,首先將文件從本地復(fù)制到hdfs相應(yīng)的位置,然后移動(dòng)到hive表格中,這個(gè)時(shí)候原始數(shù)據(jù)文件是存在于Hive表之下的路徑下。

  • 如果不包含LOCAL關(guān)鍵字,則移動(dòng)HDFS文件到目標(biāo)表中。

  • filepath 可以是一個(gè)相對(duì)路徑,也可以是一個(gè)絕對(duì)路徑。可以是一個(gè)文件,也可以是一個(gè)文件夾目錄。如果是一個(gè)目錄,這個(gè)時(shí)候文件夾下的所有文件都會(huì)被加載。

  • 命令中如果帶有overwirte,代表加載數(shù)據(jù)之前會(huì)清空目標(biāo)表格,否則就是追加的方式。

  • 如果表是分區(qū)表則必須指定PARTITION從句,否則會(huì)報(bào)如下錯(cuò)誤:
    FAILED:SemanticException [Error 10062]: Need to specify partition columns because the destination table is partitioned

二、load語句示例

  • 創(chuàng)建如下的表結(jié)構(gòu)(員工表)

create table emp
(empno int,
ename string,
job string,
mgr int,
hiredate string,
sal int,
comm int,
deptno int)
row format delimited fields terminated by ',';
  • 測試數(shù)據(jù)如下:(emp.csv)

7369,SMITH,CLERK,7902,1980/12/17,800,0,20
7499,ALLEN,SALESMAN,7698,1981/2/20,1600,300,30
7521,WARD,SALESMAN,7698,1981/2/22,1250,500,30
7566,JONES,MANAGER,7839,1981/4/2,2975,0,20
7654,MARTIN,SALESMAN,7698,1981/9/28,1250,1400,30
7698,BLAKE,MANAGER,7839,1981/5/1,2850,0,30
7782,CLARK,MANAGER,7839,1981/6/9,2450,0,10
7788,SCOTT,ANALYST,7566,1987/4/19,3000,0,20
7839,KING,PRESIDENT,-1,1981/11/17,5000,0,10
7844,TURNER,SALESMAN,7698,1981/9/8,1500,0,30
7876,ADAMS,CLERK,7788,1987/5/23,1100,0,20
7900,JAMES,CLERK,7698,1981/12/3,950,0,30
7902,FORD,ANALYST,7566,1981/12/3,3000,0,20
7934,MILLER,CLERK,7782,1982/1/23,1300,0,10
  • 加載HDFS的數(shù)據(jù)到Hive的表

load data inpath '/scott/emp.csv' into table emp;
  • 加載本地的數(shù)據(jù)到Hive的表

load data local inpath '/root/temp/emp.csv' into table emp;

當(dāng)然我們也可以使用insert語句加載數(shù)據(jù)。例如,我們創(chuàng)建如下的分區(qū)表:

create table emp_part_1
(empno int,
ename string,
job string,
mgr int,
hiredate string,
sal int,
comm int)
partitioned by (deptno int)
row format delimited fields terminated by ',';

使用insert語句將數(shù)據(jù)插入到對(duì)應(yīng)的分區(qū)上。

插入10號(hào)部門的員工數(shù)據(jù)
insert into table emp_part_1 partition(deptno=10) 
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=10;
插入20號(hào)部門的員工數(shù)據(jù)
insert into table emp_part_1 partition(deptno=20) 
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=20;
插入30號(hào)部門的員工數(shù)據(jù)
insert into table emp_part_1 partition(deptno=30) 
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=30;

這里我們使用了一個(gè)子查詢查詢出了對(duì)應(yīng)部門的員工數(shù)據(jù),再使用insert語句插入到對(duì)應(yīng)的分區(qū)上。

以上是“如何在Hive中使用Load語句加載數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:如何在Hive中使用Load語句加載數(shù)據(jù)
新聞來源:http://muchs.cn/article2/ippsoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、用戶體驗(yàn)、、標(biāo)簽優(yōu)化、商城網(wǎng)站建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)