博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive导入数据
阅读量:4565 次
发布时间:2019-06-08

本文共 1753 字,大约阅读时间需要 5 分钟。

1.导入数据

除了前面使用Load Data方式把文件复制或移动到表的目录外,还有以下几种方式:

1). Insert Overwrite / Into Table 

hive> insert overwrite table school         > select age,name from student;

 2). 对于分区的表,可以使用Partition子句来指明数据要插入哪个分区:

  注意:对于查询出的值不满足分区表列的类型,则会插入NULL

insert overwrite table logs    partition(date='2015-01-01',country='CN')    select name,age    from student;

3) [动态分区插入]可以在Select语句中通过使用分区值来动态指明分区 

//必须指定,不然报错 set hive.exec.dynamic.partition.mode=nonstrict; INSERT OVERWRITE TABLE targetPARTITION (dt)select col1,col2,dtfrom source;

4) 当前Hive不支持insert into table T_Name values(v_2,v_2); 但可以使用下面语句达到此效果

from stuinsert into table stuselect 99,'lisi',2limit 1;

2.多表插入

  在HQL中,可以把Insert语句倒过来,把From子句放在最前面,查询的效果是一样的:

from student    insert overwrite table logs    partition(date='2015-01-01',country='CN')    select age,name;

  可以在同一个查询中使用多个Insert子句。这种“多表插入”方法比使用多个单独的INSERT语句效率更高,因为只需要扫描一遍源表就可以生成多个不相交的输出。

FROM records2INSERT OVERWRITE TABLE stations_by_yearSELECT year,COUNT(DISTINCT station)         GROUP BY yearINSERT OVERWRITE TABLE records_by_yearSELECT year,COUNT(1)         GROUP BY yearINSERT OVERWRITE TABLE good_redcords_by_yearSELECT year,COUNT(1)             WHERE temperature !=9999                AND (quality=0 OR quality=1 OR quality=4 OR quality=5 OR quality=9)            GROUP BY year;

这里只有一个源表(records2),但有三个表用于存放针对源表的三种不同查询所生成的结果。 

3.Create Table … Aa Select

  • 把Hive查询的输出结果存放到一个新的表往往非常方便,这是因为输出结果太多,不适宜显示在控制台上或基于输出结果还有其他后续处理。新表的列定义是从Select 子句所检索的列导出的。
  • CTAS (Create Table ... As Select的简称) 操作是原子的,因此如果Select查询由于某种原因失败,是不会创建新表的。
  • hive的跨数据库查询和普通关系型数据库一样,database.T_Name(default.logs)。
  • 下面语句:logs是分区表,而新cteate的是普通表。  
hive> create table t081901           > as                             > select * from default.logs; 

转载于:https://www.cnblogs.com/skyl/p/4736634.html

你可能感兴趣的文章
Pytorch中的squeeze()和unsqueeze()函数
查看>>
Docker概念学习系列之Docker的主要目标(2)
查看>>
openfire3.10.0 在mac10.10.3,jdk1.8中,安装后无法打开的解决方案
查看>>
细说java之编码
查看>>
js随机数
查看>>
【Selenium + Python】自动化测试之发送邮件正文以及附件同时发送
查看>>
mac终端常用命令
查看>>
【基本数据结构实现—线性表】
查看>>
gulp详细入门教程
查看>>
mysql数据导出
查看>>
OUTPUT 作用在INSERT,UPDATE,DELETE后
查看>>
深入学习:Windows下Git新手教程(上)
查看>>
【C++】随机重命名MP3文件
查看>>
CoolBlog开发笔记第1课:项目分析
查看>>
PeekMessage
查看>>
html中表格table的内容居中显示
查看>>
Ubuntu 中软件的安装、卸载以及查看的方法总结
查看>>
Visual Studio 2013 无法启动 IIS Express 的解决办法
查看>>
MVC Ajax.BeginForm 实例
查看>>
选择结构if
查看>>