欢迎投稿

今日深度:

Hive基础,

Hive基础,


一:变量
1:定义变量
hive --define var=foo

定义了一个变量叫做var

2:查看变量
hive> set var;


结果如下



foo=bar

或者用另外一种方式查看



hive> set hivevar:foo;

结果如下:



hivevar:foo=bar


3:修改变量的值
hive> set foo=bar2;



请注意,若使用


hive> set hivevar:foo=bar3;

则会发现使用set foo 和set hivevar:foo来查看两个变量值是不一样的

这个说明命名空间是必须的,即hivevar是不可省略的,就是说用set foo来修改变量的值和set hivevar:foo两者是不一样的,分别是两个不同的变量,
但是用set来查看的话,若没有重名的变量,效果是一样的.

4:引用变量来建表
hive> create table t1(i int, ${hivevar:foo} string);

查看表



hive> describe t1;OKi                   	int                 	                    bar3                	string              	                    Time taken: 0.372 seconds, Fetched: 2 row(s)

删除表



hive> drop table t1;OKTime taken: 5.382 seconds


5:变量的使用权限与名字空间





二:执行多个语句
hive怎样一次执行多个语句.可以使用-e来实现,多个语句间需要用分号隔开

若希望不现实OK,和Time taken等信息,可以使用静默模式,既是加入-S


三:从文件中执行hive语句
若存在一个文件为hivesql.hql的文件 则可以执行命令 
hive -f /usr/local/hivesql.hql

另外若进入了hive shell中则可以使用



source /usr/local/hivesql.hql


四:注释
使用--来注释

五:基本数据类型




六:集合数据类型
Struct,Map,和Array
Struct: 定义一个带有Struct的表格
hive> create table test(    > name string,    > address struct<street:string,city:string,state:string,zip:int>);

即其格式为struct<成员名:类型,成员名:类型>



Array: 定义一个带有array的表格
hive> create table test(    > name string,    > subordinates array<string>);

即其格式为array<类型>;



Map: 定义一个带有Map的表格
hive> create table test(    > name string,    > deductions map<string,float>);

即其格式为map<类型,类型>;




七:分隔方式




一个具体的例子
hive> create table test(    > name string,    > address struct<street:string,city:string,state:string,zip:int>,    > subordinates array<string>,    > deductions map<string,float>);row format delimitedfields terminated by '\001'collection items terminated by '\002'map keys terminated by '\003'lines terminated by '\n'stored as textfile;

指定列的分隔符,还有容器的分隔符,和map中键和值间的分割符号





www.htsjk.Com true http://www.htsjk.com/hive/38092.html NewsArticle Hive基础, 一:变量 1:定义变量 hive -- define var=foo 定义了一个变量叫做var 2:查看变量 hive set var; 结果如下 foo = bar 或者用另外一种方式查看 hive set hivevar : foo ; 结果如下: hivevar : foo = bar 3...
相关文章
    暂无相关文章
评论暂时关闭