您现在的位置 >> Hadoop教程 >> Hadoop实战 >> 专题  
 

Hive insert into插入语句用法

【作者:Hadoop实战专家】【关键词:数据类型 转换 】 【点击:37020次】【2013-12-1】
在hive 0.8开始支持Insert into语句,它的作用是在一个表格里面追加数据。但是如果查询出来的数据类型为string,插入表格对应的列类型为int,转换过程可能出现错误,因为字母就不可以转换为int,转换失败的数据将会为NULL。结果就是相当于复制了一份cite表格中的数据。  

相关热门搜索:hive数据类型

大数据标签:hive bigdata

在hive 0.8开始支持Insert into语句,它的作用是在一个表格里面追加数据。hive

标准语法语法如下:

1. 用法一:

2. INSERT OVERWRITE TABLE tablename1 [PARTITION \

3. (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] \

4. select_statement1 FROM from_statement;

5.

6. 用法二:

7. INSERT INTO TABLE tablename1 [PARTITION \

8. (partcol1=val1, partcol2=val2 ...)] \

9. select_statement1 FROM from_statement;

复制代码
注意:上面语句由于太长了,用’\'符号换行了。
举例:

1. hive> insert into table cite

2.   > select * from tt;

复制代码
这样就会将tt表格里面的数据追加到cite表格里面。并且在cite数据存放目录生成了一个新的数据文件,这个新文件是经过处理的,列之间的分割是cite表格的列分割符,而不是tt表格列的分隔符。
  (1)、如果两个表格的维度不一样,将会插入错误:

1. hive> insert into table cite

2.     > select * from cite_standby;

3.

4. FAILED: SemanticException [Error 10044]: Line 1:18 Cannot insert into

5. target table because column number/types are different 'cite':

6. Table insclause-0 has 2 columns, but query has 1 columns.

复制代码
从上面错误提示看出,查询的表格cite_standby只有一列,而目标表格(也就是需要插入数据的表格)有2列,由于列的数目不一样,导致了上面的语句不能成功运行,我们需要保证查询结果列的数目和需要插入数据表格的列数目一致,这样才行。
  (2)、在用extended关键字创建的表格上插入数据将会影响到其它的表格的数据,因为他们共享一份数据文件。
  (3)、如果查询出来的数据类型和插入表格对应的列数据类型不一致,将会进行转换,但是不能保证转换一定成功,比如如果查询出来的数据类型为int,插入表格对应的列类型为string,可以通过转换将int类型转换为string类型;但是如果查询出来的数据类型为string,插入表格对应的列类型为int,转换过程可能出现错误,因为字母就不可以转换为int,转换失败的数据将会为NULL。
  (4)、可以将一个表查询出来的数据插入到原表中:

1. hive> insert into table cite

2.   > select * from cite;

复制代码
结果就是相当于复制了一份cite表格中的数据。
  (5)、和insert overwrite的区别:

1. hive> insert overwrite table cite

2.   > select * from tt;

复制代码
上面的语句将会用tt表格查询到的数据覆盖cite表格已经存在的数据。
  更多关于hive insert into的用法,可以参见Hive 官方wiki:https://cwiki.apache.org/conflue ... /LanguageManual+DML

大数据系列相关文章:

最新评论
知足易乐2014-09-10 05:45:17
是传智播客 hadoop 前两天的视频?
一妍2014-09-09 07:32:46
把异构数据经过清洗后导入hdfs,前端应用怎么访问这些数据就成了问题
彭洪珊2014-09-08 06:34:30
什么世面没见过
心动na刻2014-09-08 05:36:58
排序算法
樱子2014-09-08 04:30:57
@工商大学张天永 请多多指教哈!在数据方面以后有机会跟您学习!
 
  • Hadoop生态系统资料推荐