1.hive分区:分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。
分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式。
a、单分区建表语句:create table day_table (id int, content string) partitioned by (dt string);单分区表,按天分区,在表结构中存在id,content,dt三列。
b、双分区建表语句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);双分区表,按天和小时分区,在表结构中新增加了dt和hour两列。
2.
concat是将字符串连接起来,相当于python中的join;
concat_ws(合并时的分隔符,合并id,name........)
collect_set(字段):根据某个字段分组后,把分在一组的数据合并在一起,默认分隔符','
注意:注意只限同列基本数据类型,函数只能接受一列参数;---------列转行
它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
explode(array)函数接受array类型的参数,其作用恰好与collect_set相反,实现将array类型数据--------行转列
eg:
select no,collect_set(score) from tablss group by no;
select no,collect_set(score) from tablaa lateral view explode(score_set) xxx as score group by no;
网友评论