這篇文章主要為大家展示了“如何在Hive中使用Load語(yǔ)句加載數(shù)據(jù)”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何在Hive中使用Load語(yǔ)句加載數(shù)據(jù)”這篇文章吧。
創(chuàng)新互聯(lián)建站企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(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)頁(yè)中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
Hive Load語(yǔ)句不會(huì)在加載數(shù)據(jù)的時(shí)候做任何轉(zhuǎn)換工作,而是純粹的把數(shù)據(jù)文件復(fù)制/移動(dòng)到Hive表對(duì)應(yīng)的地址。語(yǔ)法格式如下:
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)說(shuō)明:
如果命令中帶有LOCAL,說(shuō)明從本地文件系統(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
創(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 ',';
測(cè)試數(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語(yǔ)句加載數(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語(yǔ)句將數(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語(yǔ)句插入到對(duì)應(yīng)的分區(qū)上。
以上是“如何在Hive中使用Load語(yǔ)句加載數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標(biāo)題:如何在Hive中使用Load語(yǔ)句加載數(shù)據(jù)
新聞來(lái)源:http://www.rwnh.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)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)