sinat_36116310 2018-06-22 06:58 采纳率: 0%
浏览 519
已结题

请问大数据如何处理以下这个需求

请看下面这个日志

用户id 视频id 操作
402 40086 开始播放
403 37896 开始播放
764 675 开始播放
1037 8696 开始播放
402 40086 暂停回放
764 675 暂停回放
。。。

。。。

。。。

这是一个视频门户用户播放视频产生的日志。这个日志假设有很多,几十个G

需求是,统计出哪个视频是用户最喜欢暂停回放的。。这个太简单了。。spark sql搞定。。


然而。。。上面那个只是一个理想的日志文件。。真实的日志文件是这样的

用户id    视频id    操作

402 40086 开始播放
403 37896 开始播放
764 675 开始播放
1037 8696 开始播放
402 暂停回放
764 暂停回放
。。。

。。。

。。。

会发现。。。当用户暂停回放的时候,那一行记录是没有视频id的。。。你只能往上面的日志去找了。。。而且如果在某些情况下,两条记录之间可能还会间隔几万条或者几十万条数据。。。
请问这种情况下。。。。。究竟是这个日志本身就是设计得不合理呢。。还是说目前有什么办法可以处理。。如果有办法。。。还请各位教教我

  • 写回答

3条回答 默认 最新

  • 默默悟问 2018-06-22 08:42
    关注

    最好当然是日志信息比较完备,这样就可以不需要或者尽可能少的数据清洗处理。时间、设备信息、ip之类都可以考虑记录上。

    在日志格式不变的情况下,你只能考虑数据清洗了。基于用户ID为KEY,过滤非开始播放和暂停回放事件,value只能把事件类型和视频ID都带上,
    reduce操作就是把所有value拼接起来,拼接过程中补齐暂停播放的videoID。然后输出时候在把拼接的内容拆开输出。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题