hive 建表与 load语法

本文介绍了Hive中内部表、外部表及分区表的创建方法,并详细解释了ROW FORMAT、STORED AS及PARTITIONED BY等语法的具体用法。此外还讲解了LOAD DATA的使用方法,包括从本地文件系统加载数据到Hive表的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive 建表语法

内部表:

create table fzname
(id int,name string,age int,tel string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

外部表:

create external table fz_external_name(id int,name string,age int,tel string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
location '/home/sendi/test.txt';

分区表:

create table fzname
(id int,name string,age int,tel string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
PARTITIONED BY (month string)
STORED AS TEXTFILE;

建表语法

数据

123,aa,2,0,hangzhou
245,bb,3,1,beijing
789,cc,2,0,shanghai
201,dd,3,1,guangzhou

指定表中行数据信息

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ LINES TERMINATED BY ‘\n’
* ROW FORMAT
* TERMINATED BY ‘\t’ 每行数据中字段的分隔符
* LINES TERMINATED BY ‘\n’ 行的分隔符,不指定的时候默认为‘\n’

存储格式

  • STORED AS
    • TEXTFILE 使用纯文本存储。
    • SEQUENCEFILE 对文件进行压缩存储。

分区

  • PARTITIONED :表示的是分区,不同的分区会以文件夹的形式存在

外部表

  • EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数 据会被一起删除,而外部表只删除元数据,不删除数据。

LOAD 语法

Hive不支持一条一条的用insert语句进行插入操作,也不支持update的操作。数据是以从其他表查询或load的方式,加载到建立好的表中。数据一旦导入,则不可修改。

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

例子

导入到普通表:

LOAD DATA LOCAL INPATH "/home/hadoopUser/data/test1.txt" INTO TABLE test1;  

导入到分区表:

load data local inpath '/liguodong/dataext' into table test1 partition(dt='20150717');
  • LOCAL

    • 指定local,表示从本地文件系统加载(文件会被拷贝到HDFS中)
    • 不指定local,表示从HDFS中加载数据
  • OVERWRITE 表示是否覆盖表中数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值