`

【赵强老师】在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语句示例

  • 创建如下的表结构(员工表)
  • 测试数据如下:(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语句插入到对应的分区上。

 

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    掌握RMAN(恢复管理器)工具的使用,以及如何在数据丢失或系统故障时进行数据恢复。 7. **性能优化**:了解Oracle的性能监控工具,如V$视图、AWR(自动工作负载 repository)和ASH(活动会话历史)。学习如何通过...

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    二年级数学生活中的大数赵强PPT课件.pptx

    赵强老师在课件中选择了具有代表性的例子,如天空中闪烁的星星、高大的教学楼、雄伟的东方明珠电视塔、世界之巅珠穆朗玛峰,以及丰富多彩的中国鸟类种类和跨越江河的壮丽桥梁。这些例子不仅贴近学生的实际生活,还能...

    精通JSP编程 作者赵强

    5. **第8章** - 可能会涉及JavaBeans组件,这是在JSP中封装业务逻辑和数据的常用方式。这一章可能会讲述如何创建、配置和使用JavaBeans,以及如何通过JSP标签进行调用。 6. **第9章** - 该章节可能涵盖JSP的页面...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    Oracle学习笔记(传智播客 赵强)

    2. **AND和OR操作符的使用策略**:在条件组合中,应将更可能为假的条件放在`AND`操作符的右侧,将更可能为真的条件放在`OR`操作符的右侧。这是因为SQL通常从右向左评估表达式,这样的排列有助于尽早确定查询结果。 ...

    [1120][赵强精通JSP编程][37M]

    根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...

    二年级数学生活中的大数赵强PPT学习教案.pptx

    通过互动和练习,学生能够在真实情境中练习使用大数,如在购物时计算总价、在日常生活中估算物品的重量等。通过这些活动,学生不仅能够掌握基本的数学技能,还能够在实际生活中应用所学知识,提高解决实际问题的能力...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    10天掌握MongoDB

    在MongoDB的使用中,我们可以使用命令行工具进行数据操作,包括创建、读取、更新和删除(CRUD)操作。MongoDB的shell提供了强大的交互式环境,允许用户运行JavaScript脚本进行数据处理和分析。此外,用户还可以通过...

    day2013-0110-webLogic配置和集群(赵强).zip

    在`config.xml`中配置域的参数,如服务器名称、端口、JDBC数据源等。 3. 部署应用:使用WebLogic管理控制台或命令行工具`wlst`(WebLogic Scripting Tool)部署Java应用,将WAR、EAR或JAR文件上传到服务器上。 二...

    java代码-46 赖赵强

    在本项目中,标题"java代码-46 赖赵强"暗示了这是一个与Java编程相关的代码示例,可能是由一个名叫赖赵强的开发者编写的。在Java编程领域,这种命名通常是为了记录个人的学习过程或者项目经历。描述中的内容相同,...

    oracle课件

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它在企业级数据管理、数据分析以及应用程序开发中扮演着核心角色。本"Oracle课件"集合为初学者提供了一个丰富的学习平台,通过PPT格式深入浅出地...

    LoadRunner性能测试巧匠训练营-完整版(带目录)-赵强邹伟伟

    《LoadRunner性能测试巧匠训练营》是一本深入讲解LoadRunner性能测试的教材,由赵强和邹伟伟两位专家共同编著。该资源提供的是完整版,且无需密码即可解压阅读,对于想要学习和提升LoadRunner性能测试技能的人来说,...

    从零开始oracle

    在一个关系型数据库中,主键是必需的,用以确保数据的唯一性和完整性。 **外码(外键)**:当一个表中的某个字段引用了另一个表的主键时,这个字段就称为外键。例如,表1.2中的“编号”字段既是该表的主键,也是表...

    oracle讲义

    7. 光标的使用:12 光标的使用.ppt会详细说明如何在PL/SQL中使用游标来处理单行或多行结果集,包括声明、打开、读取和关闭光标等步骤。 8. 存储过程与函数:14 存储过程与函数.ppt将阐述这两者的定义、用途和创建...

    信息存储技术的发展赵强.doc

    从古代的岩画到现代的云存储,存储技术的进步极大地丰富了我们的信息获取途径,提升了数据处理和传输的效率,同时也对数据安全、隐私保护提出了更高的要求。随着技术的不断演进,未来的存储技术将会更加智能、高效,...

    教师年度优秀述职报告三篇.docx

    赵强老师在报告中说:“我积极参与教研活动,通过与同事们的交流与合作,不断反思和调整教学策略,促进了教学质量的整体提升。”他表达了对未来工作的期待,希望在新的学年中,能够继续发挥自己的专业特长,为学校的...

Global site tag (gtag.js) - Google Analytics