sparkstreaming 读取kafka日志数据,如何根据日志时间进行统计
sparkstreaming 读取kafka日志数据,窗口处理为1分钟,日志数据自带时间戳,想根据日志时间戳进行分钟级别的数据统计,这个怎么支持实现?structed streaming 支持event Time,但是怎么让sparkstreaming 实现这种统计呢?比如日志数据如下:
日志数据为id+request_time
想要根据kafka日志数据里面的request_time进行统计,但是日志数据传到sparkstreaming后的process_time肯定大于日志数据里面的时间,sparkstreaming接收过来的1分钟的窗口数据里面的日志数据跨分钟级别了
如图例子
iot-lee 发表于 2019-7-29 17:26
如图例子
下面方法仅供参考:
1.把request_time记录下来作为字段,然后排序。
2.修改spark streaming源码
3.使用struct streaming
s060403072 发表于 2019-7-30 07:21
下面方法仅供参考:
1.把request_time记录下来作为字段,然后排序。
2.修改spark streaming源码
如果是request_time作为key的话,假如日志数据为10:01的,还是有可能跨多个窗口的,怎么保证排序后统计呢?可以详细指导下吗
iot-lee 发表于 2019-7-30 09:53
如果是request_time作为key的话,假如日志数据为10:01的,还是有可能跨多个窗口的,怎么保证排序后统计 ...
只能窗口内统计,如果非窗口内,那么比如迟到事件等,这也是没法统计的。
s060403072 发表于 2019-7-30 10:05
只能窗口内统计,如果非窗口内,那么比如迟到事件等,这也是没法统计的。
sparkstreaming不是支持水印吗?这种针对根据日志里包含时间戳的消息,只能用structstream去做吗?滑动窗口实现不了跨分钟级别的日志数据的统计吗?
你的事件发生时,给个EventTime(yyyyMMddHHmmss),然后你Streaming处理数据时,将数据的EventTime时间拿出来,根据现在的时间-EventTime时间不就Ok了吗
页:
[1]