Show databases;
Show tables;
DESCRIBE table_name;
CREATE TABLE daxiong (id INT, name STRING);
Create table daxiong1 like daxiong;
create table logs(ts bigint,line string) partitioned by (dt String,country String);
加载表数据
(从linux(ext3/ext4文件系统到hive))
a文件之间是空格,b文件之间是tab键;一会看结果。
hive> create table ha(id int,name string)
> row format delimited
> fields terminated by '\\t'
> stored as textfile;
OK
Time taken: 0.28 seconds
注:[ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。
[STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [STORED AS TEXTFILE],然后从本地直接拷贝到HDFS上,hive直接可以识别数据。
从linux上传到hdfs上:
load data inpath '/user/c' into table ha;
insert overwrite local directory '/home/hdfs/d' select * from ha;
insert overwrite directory '/user/d select * from ha;
查看:
建立一个表格classes具有1个列族user
create 'classes','user'
查看表的构造
describe 'classes‘
加入数据
put 'classes','001','user:name','jack'put 'classes','001','user:age','20' put 'classes','002','user:name','liza' put 'classes','002','user:age','18'
查看classes中的数据
scan 'classes'
创建外部hive表,查询验证:
create external table classes(id int, name string, age int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,user:name,user:age") TBLPROPERTIES("hbase.table.name" = "classes");
select * from classes;
再添加数据到Hbase
put 'classes','003','user:age','1820183291839132'
scan 'classes'
Hive查询,看看新数据
select * from classes;
null,因为3没有name,所以补位Null,而age为Null是因为超过最大值,截图中有验证