中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何在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

阿拉尔市| 胶南市| 邢台县| 广汉市| 耿马| 宣汉县| 稻城县| 胶南市| 扎鲁特旗| 莎车县| 屯昌县| 叙永县| 芮城县| 内丘县| 阳信县| 米脂县| 泰和县| 滨海县| 都江堰市| 道真| 潜山县| 郴州市| 华坪县| 水富县| 汉阴县| 囊谦县| 福贡县| 呈贡县| 台前县| 郯城县| 井冈山市| 南昌县| 讷河市| 福清市| 鹿泉市| 天津市| 措美县| 平潭县| 巧家县| 封丘县| 博野县|