(HIVE/SPARK)建表语句如下:
create database if not exists test;
use test;
CREATE TABLE if not exists test.test (
dt string,
level string,
cnt int )
ROW format delimited FIELDS TERMINATED BY '\t';
INSERT INTO TABLE test.test VALUES
( '2022:08:01 01', 'high', 12 ),( '2022:08:01 02', 'low', 4 ),( '2022:08:01 03', 'low', 5 ),
( '2022:08:01 04', 'low', 1),( '2022:08:01 05', 'low', 2 ),( '2022:08:01 06', 'high', 14 ),
( '2022:08:01 07', 'high', 15),( '2022:08:01 08', 'high', 11 ),( '2022:08:01 09', 'low', 9 ),
( '2022:08:01 10', 'high', 10 ),( '2022:08:01 11', 'high', 11 ),( '2022:08:01 12', 'low', 8 );
表如下:
2022:08:01 01,high,12
2022:08:01 02,low,4
2022:08:01 03,low,5
2022:08:01 04,low,1
2022:08:01 05,low,2
2022:08:01 06,high,14
2022:08:01 07,high,15
2022:08:01 08,high,11
2022:08:01 09,low,9
2022:08:01 10,high,10
2022:08:01 11,high,11
2022:08:01 12,low,8
现需求如下:
2022:08:01 01,high,12
2022:08:01 02,low,12
2022:08:01 06,high,40
2022:08:01 09,low,9
2022:08:01 10,high,21
2022:08:01 12,low,8
大意为:
将level为high或low的连续时间段,合并为‘高峰期’和‘低谷期‘,并加和期间的流量。
如结果中的dt能为当前期间的‘开始-结尾’格式更佳。