1)创建表: create table tablename;
默认的分割符是
e.g.
create table tablename(id int, name string)
row format delimited fields terminated by '\t'
2)插入: load data [local] inpath 'path/data' [overwrite] into table tablename;
local 表示从本地读入,忽略则从hdfs上读入。
overwrite 表示覆盖原表里的数据,不写则不会覆盖
3)删除表:drop table tablename;
外表:CREATE EXTERNAL TABLE创建的表
内表:CREATE TABLE创建的表
如果删除的是外表,则数据会保留,只删除表的元数据;
如果删除的是内表,则会删除表的元数据,以及对应数据的元数据。
4)支持类型:
TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,
5)正则: 我所知道的有两种方式:
(1) regexp_extract
(2) "A"REGEXP "B"
在使用hive中函数regexp_extract需要注意的是正则表达式的\需要使用\进行转义,也就是说,需要使用\\两道斜线
例子:
1) SELECT regexp_extract('1.2.3.','\\d',0) FROM table_name limit 4;
2) SELECT DISTINCT grams, year, occurrences FROMenglish_1grams WHERE year > 2000 AND gram REGEXP "A[0-9]+" LIMIT 10000
在Hive源码中的位置:
hive-0.11.0/src/ql/src/java/org/apache/hadoop/hive/ql/udf
类:UDFRegExp 函数:evaluate
Map和Reduce函数在Hive源码中的位置:
hive-0.11.0/src/ql/src/java/org/apache/hadoop/hive/ql/exec
类:ExecMapper 函数:map
hive-0.11.0/src/ql/src/java/org/apache/hadoop/hive/ql/exec
类:ExecReducer 函数:reduce
FaceBook 镜像(被墙):http://mirror.facebook.com/facebook/hive
Wiki 页面:http://wiki.apache.org/hadoop/Hive
入门指南:http://wiki.apache.org/hadoop/Hive/GettingStarted
查询语言指南:http://wiki.apache.org/hadoop/Hive/HiveQL
演示文稿:http://wiki.apache.org/hadoop/Hive/Presentations
蓝图:http://wiki.apache.org/hadoop/Hive/Roadmap
#ifdef SQLSERVER
#define GEN_QUERY_PLAN "EXPLAIN;"
#define START_TRAN "START TRANSACTION;\n"
#define END_TRAN "COMMIT;\n"
#define SET_OUTPUT ""
#define SET_ROWCOUNT "limit %d;\n"
#define SET_DBASE "use %s;\n"
#endif