Hive分享教程2-Hive语法

Hive的语法与SQL相似,细看例子

creating tables

CREATE TABLE tmp_table #表名
{
title string , #字段名 字段类型
minimun_bid double,
quantity bigint,
have_invoice bigint
}COMMENT 'XXX' #表注解
PARTITIONED BY(pt STRINT) #分区表字段(文件大则采用分区)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001' #字段分割
STORED AS SEQUENCEFILE; #采用那种存储方式存储数据 SEQUENCEFILE是hadoop自带的文件压缩格式


一些常用的命令
SHOW TABLES; #查看所有的表
SHOW TALBES '*TMP*' #支持模糊查询
SHOW PARTITIONS TABLE; #查看表有哪些分区
DESCRIBE TABLE; #查看表结构

例子:

CREATE TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
ROW FORMT DELIMITED FIELDS TERMINATED BY '44' LINES TERMINATED BY '12'
STORED AS TEXTFILE
LOCATION '/user/data/staging/page_view';

hadoop dfs -put /tmp/pv_2008-06-08.txt /user/data/staging/page_view

FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='US')
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip
WHERE pvs.country = 'US';


另外,HDFS不支持UPDATE!

用户可以用ALTER TABLE ADD PARTITION 来向一个表中增加分区
当分区名是字符串串时加引号

ALTER TABLE page_view ADD PARTITION(dt='2008-08-08',country='us') location 'path/to/us/part080808'
PARTITION(dt='2008-08-09',country='us') location 'path/to/us/part080809'


loading files into table
当数据被加载至表中时,不会对数据进行任何转换。Load操作知识将数据复制/移动至Hive表对应的位置。
Syntax:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION(partcol1=val1,partcol2=val2 ...)]
即,普通的insert只不过数据来源是通过inpath路径找到,insert之前保证表已经建立完,并且格式一致(换行、分隔符等)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值