显示当前所示的数据库
select current_database();
设置hive属性在命令头显示所在数据库名称(在hive里直接打)
set hive.cli.print.current.db=ture;
复杂数据类型
CREATE TABLE student(
name STRING,
favors ARRAY<STRING>,
scores MAP<STRING, FLOAT>,
address STRUCT<province:STRING, city:STRING, detail:STRING, zip:INT>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ';'
MAP KEYS TERMINATED BY ':' ;
简单翻译
row format delimited fields terminated by '\t' 行格式分隔字段终止于
collection items terminated by ';' 收集项目终止于
map keys terminated by ':' 映射键终止于
说明:
1、字段name是基本类型,favors是数组类型,可以保存很多爱好,scores是映射类型,可以保存多个课程的成绩,address是结构类型,可以存储住址信息
2、ROW FORMAT DELIMITED是指明后面的关键词是列和元素分隔符的
3、FIELDS TERMINATED BY 是字段分隔符
4、COLLECTION ITEMS TERMINATED BY是元素分隔符(Array中的各元素、Struct中的各元素、Map中的key-value对之间)
5、MAP KEYS TERMINATED BY是Map中key与value的分隔符
6、LINES TERMINATED BY是行之间的分隔符
7、STORED AS TEXTFILE指数据文件上传之后保存的格式
Load装载数据
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]
INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)];
1.local 代表查找本地文件系统中的路径
2.filepath 代表的是要导入文件的路径
3.overwrite 如果使用了 OVERWRITE 关键字,代表覆盖,会覆盖同一名称的文件
insert插入数据
INSERT INTO TABLE table_name VALUES(XX,YY,ZZ),(AA,BB.CC);
insert导出数据
INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement
select查询数据
hive join查询
join_table:
table_reference JOIN table_factor [join_condition]
| table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition
| table_reference LEFT SEMI JOIN table_reference join_condition
Hive 支持等值连接(equality join)、外连接(outer join)和(left/right join)。Hive 不支持非等值的连接,因为非等值连接非常难转化到 map/reduce 任务。
另外,Hive 支持多于 2 个表的连接。