首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大数据量下的笛卡儿积的替代方案

最近一直被一个简单的风险场景卡着,识别考勤代打卡。其实python的实现逻辑也很简单,做笛卡儿积=>两列打卡时间相减,保留10秒以内的记录=>用员工号做主键groupby+count,按月计算,次数超过一定常规数值的员工号两两组合视为异常。

问题是整个公司每天打卡的人太多,10多天的数量就超过400万条记录,只保留进的记录也得有200多万条。

想了一些解决方案,如下:

方案一:简单粗暴笛卡儿积。数据量会超过16万亿条。X

方案二:按照电子门ID和日期gourpby之后再做笛卡儿积,今天尝试了一下,速度太慢,跑几天都不一定能跑出来。X

方案三:放弃使用笛卡儿积的solution,用pandas的rolling系列功能,只检查相邻的两次打卡。好处是rolling底层是numpy实现,速度有保障,坏处是无法识别一个人帮一帮人打卡。这个方案明天尝试一下。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321G1OW6200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券