文本数据1:sample2.txt
A 1950 0 1
B 1950 22 1
A 1950 -11 1
B 1949 111 1
A 1949 78 1
文件数据2:sample3.txt
A 1950 23 1
B 1949 22 1
C 1950 2 1
A 1949 0 1
1.创建一外部表格demo,用于装载sample2.txt和sample3.txt,其中sampl2.txt在hdfs中,sample3.txt在本地环境中
CREATE EXTERNAL TABLE demo(foo string,year string,temperature int,quality int)PARTITIONED BY(dt string) row format delimited fields terminated by '\t' stored as textfile;
2.加载数据sample2.txt,由于sample2.txt在hdfs中:
LOAD DATA INPATH'/user/long1657/ncdc/sample2.txt' overwrite into table demo PARTITION(dt='20130810');
3.加载数据sample3.txt,sample3.txt在本地电脑上
LOAD DATA LOCAL INPATH'sample3.txt' overwrite into table demo PARTITION(dt='20130811');
4.查看所有每个年份最大的气温值:
SELECT year,MAX(temperature) FROM demo group by year;
5.查看某一分区的每个年份最大的气温值
SELECT year,MAX(temperature) FROM demo WHERE demo.dt='20130810' GROUP BY year;
6.查看某一分区的所有数据量:
SELECT count(*) from demo where demo.dt='20130811';
7.复制一个空表:
CREATE TABLE demo2 LIKE demo;
8.添加一个partitoin并且加载数据:
ALTER TABLE demo ADD PARTITION(dt='20130812') LOCATION'/user/long1657/sample';
9.DROP partitions
ALTER TABLE demo DROP partition(dt='20130811');
10.TABLE 重命名
ALTER TABLE demo RENAME TO demo3;
这个命令可以让用户为表更名。数据所在的位置和分区并不改变。换而言之,老的表名并未“释放”,对老表的更改会该表新表的数据。
11.修改列
ALTER TABLE demo change COLUMN quality qua string;
12.增加和替换列,新建一个表myTest
ALTER TABLE myTest ADD COLUMNS(id string);
ALTER TABLE myTest REPLACE COLUMNS(id string,name string);
用REPLACE时整个之包含id和name这两个列,其他的都被删除。
13.查看某个表的所有PARTITION,如果没有就会报错;
SHOW PARTITIONS demo;
14.查看表的结构:
DESCRIBE|DESC demo;
15.查看有限行内容:
SELECT * FROM demo a limit 5;查看demo表中前5行
16.查看表分区定义
DESCRIBE EXTENDED demo partition(dt='20130811');
17.导出文件到本地
INSERT OVERWRITE LOCAL DIRECTORY 'local_out' SELECT * FROM demo;
18.导出文件到HDFS
INSERT OVERWRITE DIRECTORY '/user/long1657/writeHdfs' SELECT * FROM demo where dt='20130811';
19.直接使用hive命令来查看数据:
hive -e 'select * from demo'
20.使用命令将查看的结果导出到一个文件
hive -S -e 'select * from demo' > a.txt
21.运行脚本文件
hive -f 脚本文件位置
A 1950 0 1
B 1950 22 1
A 1950 -11 1
B 1949 111 1
A 1949 78 1
文件数据2:sample3.txt
A 1950 23 1
B 1949 22 1
C 1950 2 1
A 1949 0 1
1.创建一外部表格demo,用于装载sample2.txt和sample3.txt,其中sampl2.txt在hdfs中,sample3.txt在本地环境中
CREATE EXTERNAL TABLE demo(foo string,year string,temperature int,quality int)PARTITIONED BY(dt string) row format delimited fields terminated by '\t' stored as textfile;
2.加载数据sample2.txt,由于sample2.txt在hdfs中:
LOAD DATA INPATH'/user/long1657/ncdc/sample2.txt' overwrite into table demo PARTITION(dt='20130810');
3.加载数据sample3.txt,sample3.txt在本地电脑上
LOAD DATA LOCAL INPATH'sample3.txt' overwrite into table demo PARTITION(dt='20130811');
4.查看所有每个年份最大的气温值:
SELECT year,MAX(temperature) FROM demo group by year;
5.查看某一分区的每个年份最大的气温值
SELECT year,MAX(temperature) FROM demo WHERE demo.dt='20130810' GROUP BY year;
6.查看某一分区的所有数据量:
SELECT count(*) from demo where demo.dt='20130811';
7.复制一个空表:
CREATE TABLE demo2 LIKE demo;
8.添加一个partitoin并且加载数据:
ALTER TABLE demo ADD PARTITION(dt='20130812') LOCATION'/user/long1657/sample';
9.DROP partitions
ALTER TABLE demo DROP partition(dt='20130811');
10.TABLE 重命名
ALTER TABLE demo RENAME TO demo3;
这个命令可以让用户为表更名。数据所在的位置和分区并不改变。换而言之,老的表名并未“释放”,对老表的更改会该表新表的数据。
11.修改列
ALTER TABLE demo change COLUMN quality qua string;
12.增加和替换列,新建一个表myTest
ALTER TABLE myTest ADD COLUMNS(id string);
ALTER TABLE myTest REPLACE COLUMNS(id string,name string);
用REPLACE时整个之包含id和name这两个列,其他的都被删除。
13.查看某个表的所有PARTITION,如果没有就会报错;
SHOW PARTITIONS demo;
14.查看表的结构:
DESCRIBE|DESC demo;
15.查看有限行内容:
SELECT * FROM demo a limit 5;查看demo表中前5行
16.查看表分区定义
DESCRIBE EXTENDED demo partition(dt='20130811');
17.导出文件到本地
INSERT OVERWRITE LOCAL DIRECTORY 'local_out' SELECT * FROM demo;
18.导出文件到HDFS
INSERT OVERWRITE DIRECTORY '/user/long1657/writeHdfs' SELECT * FROM demo where dt='20130811';
19.直接使用hive命令来查看数据:
hive -e 'select * from demo'
20.使用命令将查看的结果导出到一个文件
hive -S -e 'select * from demo' > a.txt
21.运行脚本文件
hive -f 脚本文件位置