【转】Hive的insert操作

摘要:
数据以加载的形式加载到已建立的表中。一旦导入,数据就无法修改。只能使用overwrite和intoerror!将数据导出到HDFS:insertoverwritedirectory'/user/hhive/warehouse/table'selectvaluefromtest_table;只能使用overwrite和intoerror!

insert 语法格式为:

1. 基本的插入语法:

insert overwrite table tablename [partition(partcol1=val1,partclo2=val2)] select_statement;

insert into table tablename [partition(partcol1=val1,partclo2=val2)] select_statement;

eg:

insert overwrite table test_insert select * from test_table;
insert into table test_insert select * from test_table;

注:
overwrite重写,into追加。

2. 对多个表进行插入操作:

from source_table
insert overwrite table tablename1 [partition (partcol1=val1,partclo2=val2)] select_statement1
insert overwrite table tablename2 [partition (partcol1=val1,partclo2=val2)] select_statement2

eg:

from test_table                     
insert overwrite table test_insert1 
select key
insert overwrite table test_insert2
select value;

注:hive不支持用insert语句一条一条的进行插入操作,也不支持update操作。数据是以load的方式加载到建立好的表中,数据一旦导入就不可以修改。


2.通过查询将数据保存到filesystem

insert overwrite [local] directory 'directory' select_statement;

eg:

(1)导入数据到本地目录:

insert overwrite local directory '/home/hadoop/data' select * from test_insert1;

产生的文件会覆盖指定目录中的其他文件,即将目录中已经存在的文件进行删除。

只能用overwrite,into错误!

(2)导出数据到HDFS中:

insert overwrite directory '/user/hive/warehouse/table' select value from test_table;
只能用overwrite,into错误!

(3)同一个查询结果可以同时插入到多个表或者多个目录中:

from source_table
insert overwrite local directory '/home/hadoop/data' select * 
insert overwrite directory '/user/hive/warehouse/table' select value;

3. 小结:

(1)insert命令主要用于将hive中的数据导出,导出的目的地可以是hdfs或本地filesysytem,导入什么数据在于书写的select语句。

(2)overwrite与into:

insert overwrite/into table 可以搭配;

insert overwrite directory 可以搭配;

免责声明:文章转载自《【转】Hive的insert操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JBOSS 数据源配置并使用JNDI调用3.1.5 LTP(Linux Test Project)学习(五)-LTP代码学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

STM32.SPI(25Q16)

1.首先认识下W25Q16DVSIG, SOP8 SPI FLASH 16MBIT 2MB(4096个字节) (里面能够放字库,图片,也能够程序掉电不丢失数据放里面) 例程解说: ① 1.用到SPI库;conf.h里打开头文件 2.2M串行FLASH W25Q16初始化 SPI_FLASH_Init(); RCC_APB2PeriphClockCmd...

hive权威安装出现的不解错误!(完美解决)两种方法都可以

   以下两种方法都可以,推荐用方法一! 如果有误,请见博客 MySQL用户权限(Host,User,Password)管理(mysql.user)   可以自己去增加和删除用户。别怕,zhouls! 方法一:   步骤一: yum -y install mysql-server   步骤二:service mysqld start   步骤三:my...

python操作Excel读写--使用xlrd

一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 二、使用介绍 1、导入模块 import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls') 3、使用技巧 获取一个工作表 t...

SQL这样干,你就是给自己刨坑.....

SQL是作为一个程序员接触得非常多的一种语言,但是,很多时候,我们会发现,有些SQL的执行效率异常的差,造成了数据库的负担。我们通过分析这些有问题的SQL,就可以发现很多我们平时在写SQL的时候忽略的问题。 今天,我们就来讲一下这些需要改掉的坏习惯。 尽量少用负向条件查询 假设我们有一个Order表,表中有一个字段是Status,这个字段有4个值,分别是0...

update更新为空值的问题

SQL> set linesize 200 SQL> set pagesize 200 SQL> select * from a; ID AMT ---------- ---------- 1 100 2 200 3 300 4 400 SQL> select * from b; ID...

.Net Core应用框架Util介绍(五)

上篇简要介绍了Util在Angular Ts方面的封装情况,本文介绍Angular封装的另一个部分,即Html的封装。 标准组件与业务组件 对于管理后台这样的表单系统,你通常会使用Angular Material或Ng-Zorro这样的UI组件库,它们提供了标准化的UI组件。 标准组件将Ts封装起来,以特定标签和属性的方式提供使用。 业务组件使用标准组件拼...