91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Hive中使用Load語句加載數據

發布時間:2021-12-10 14:22:20 來源:億速云 閱讀:3373 作者:小新 欄目:大數據

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

一、Hive中load語句的語法說明

Hive Load語句不會在加載數據的時候做任何轉換工作,而是純粹的把數據文件復制/移動到Hive表對應的地址。語法格式如下:

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)

幾點說明:

  • 如果命令中帶有LOCAL,說明從本地文件系統加載數據,文件路徑可以是相對路徑,也可以是絕對路徑。在這種情況下,首先將文件從本地復制到hdfs相應的位置,然后移動到hive表格中,這個時候原始數據文件是存在于Hive表之下的路徑下。

  • 如果不包含LOCAL關鍵字,則移動HDFS文件到目標表中。

  • filepath 可以是一個相對路徑,也可以是一個絕對路徑。可以是一個文件,也可以是一個文件夾目錄。如果是一個目錄,這個時候文件夾下的所有文件都會被加載。

  • 命令中如果帶有overwirte,代表加載數據之前會清空目標表格,否則就是追加的方式。

  • 如果表是分區表則必須指定PARTITION從句,否則會報如下錯誤:
    FAILED:SemanticException [Error 10062]: Need to specify partition columns because the destination table is partitioned

二、load語句示例

  • 創建如下的表結構(員工表)

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 ',';
  • 測試數據如下:(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的數據到Hive的表

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

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

當然我們也可以使用insert語句加載數據。例如,我們創建如下的分區表:

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語句將數據插入到對應的分區上。

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

這里我們使用了一個子查詢查詢出了對應部門的員工數據,再使用insert語句插入到對應的分區上。

以上是“如何在Hive中使用Load語句加載數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪洞县| 澄城县| 德州市| 班戈县| 大悟县| 舟曲县| 文成县| 天峨县| 镇赉县| 岫岩| 塔城市| 寿阳县| 乌鲁木齐市| 北流市| 潮州市| 泽州县| 大埔县| 台北市| 曲沃县| 龙川县| 陆良县| 呼图壁县| 通许县| 隆安县| 靖边县| 马公市| 呼伦贝尔市| 岐山县| 绥阳县| 靖西县| 永安市| 阳谷县| 唐山市| 石家庄市| 新平| 陇川县| 仁怀市| 峡江县| 沙河市| 万年县| 桃园市|