如图:结合这个图
这个可以理解为一个用户注册的过程。有多步。每一步成功可以到下一步。用户可以多次登录。中间某一步出错了。可以重试。成功了。就到下一步。错误了就还是停留在当前这一步。
现在的需求是。要挑出用户一次操作中,最后没有成功的那些记录中出错的记录,就是我右侧有箭头的那5条信息。
(注:一个用户 每次操作都要从 stage为1开始。遇到下一次stage为1.则定义为一次操作) 下面有提供测试数据。
drop table if exists test;
create external table if not exists test(
userid string ,
stage int ,
recode string ,
time string
)
row format delimited fields terminated by '\t'
stored as textfile;
A 1 success 2017-07-19 10:09:10
A 2 error 2017-07-19 10:10:10
A 1 success 2017-07-19 11:09:10
A 2 success 2017-07-19 11:10:10
A 3 error 2017-07-19 11:12:10
A 1 success 2017-07-19 11:12:15
A 2 success 2017-07-19 11:12:16
A 3 error 2017-07-19 11:12:17
A 3 success 2017-07-19 11:12:18
A 4 error 2017-07-19 11:12:19
A 4 success 2017-07-19 11:12:20
A 5 success 2017-07-19 11:12:30
B 1 success 2017-07-19 12:12:10
B 2 error 2017-07-19 12:12:12
load data local inpath '/home/hdfs/lxw/dying.txt' into table test;
补充内容 (2017-7-20 14:43):
stage能到第5步的就算成功。 |
|