hive3

本文详细探讨了Hive3中的多级分区创建及HDFS目录观察,讲解了lateral view的平铺数据和解析数组功能。对比分析了json_tuple和get_json_object的性能差异,以及group_concat、concat_ws和wm_concat在聚合数据拼接上的区别。同时,阐述了collect_list和collect_set的区别,创建分隔符为$%#的表,并展示了grouping set和cube语法的应用。还介绍了Hive的内置函数,包括日期函数和分区表的逻辑设计。
摘要由CSDN通过智能技术生成

作业:

1.自己建立多级分区,并观察hdfs上的目录

CREATE TABLE `sqq.emp_pars`(
  `empno` decimal(4,0), 
  `ename` varchar(10), 
  `job` varchar(9), 
  `mgr` decimal(4,0), 
  `hiredate` date, 
  `sal` decimal(7,2), 
  `comm` decimal(7,2), 
  `deptno` decimal(2,0))
PARTITIONED BY ( 
  `year` string, 
  `mounth` string)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
WITH SERDEPROPERTIES ( 
  'field.delim'='\t', 
  'serialization.format'='\t') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'hdfs://sqq:9000/user/hive/warehouse/sqq.db/emp_pars'
TBLPROPERTIES (
  'bucketing_version'='2', 
  'transient_lastDdlTime'='1649141922');


insert into table emp_pars partition(year='2022',mounth='04')
     select * from emp

2.lateral view的用法

平铺数据,解析数组

select case when phone is not null then phone else '000000' end as phone
from json
LATERAL VIEW json_tuple(line,'phone') t as phone

3.json_tuple和get_json_object的区别,尤其是性能方面

select json_tuple(line,'ceo','company','address','phone')
as (ceo,company,address,phone)
from json
select get_json_object(line,'$.ceo') as ceo,
get_json_object(line,'$.company') as company,
get_json_object(line,'$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值