【Hive四】HQL DML之LOAD和INSERT

1. HQL DML

  • 数据加载语句 LOAD
  • 数据插入语句 INSERT
  • 数据查询语句 SELECT
  • 查看HQL执行计划 explain
  • 表/分区导入导出 export/Import

2. LOAD

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename[PARTITION (partcol1=val1, partcol2=val2 ...)]

LOAD说明:

  • 当数据被加载至表中时,不会对数据进行任何转换。Load 操作只是将数据复制/移动至 Hive 表对应的位置。
  • 默认每个表一个目录,比如数据库mydb中,表名为mytable,则数据存放位置为:${metastore.warehouse.dir}/mydb.db/mytable,文件名跟导入时的文件名一致
  • metastore.warehouse.dir默认值是/user/hive/warehouse

3. INSERT

3.1 基本INSERT

INSERT OVERWRITE TABLE tablename[PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement FROM from_statement

3.2 批量INSERT

从一个表中多次查询多次插入

FROM from_statement INSERT OVERWRITE TABLE tablename1 [PARTITION...)] select_statement1 [INSERT OVERWRITE TABLE tablename2 [PARTITION ...] select_statement2] ...

4. LOAD和INSERT实例

 

 

 5. Hive导入数据到分区表的指定分区

  load data local inpath '/home/admin/yuzt/word.txt' into table word_count_input_2partitions partition(dt1="20151211",dt2="20151212");

  load data local inpath '/export/App/YH-bds-mapred/hhgdata/abc.txt' into table word_count_input partition(dt="20151211");

猜你喜欢

转载自bit1129.iteye.com/blog/2190991