SparkSQL在机器学习场景中应用第四范式已经在很多行业落地了上万个AI应用,比如在金融行业的反欺诈,媒体行业的新闻推荐,能源行业管道检测,而SparkSQL在这些AI应用中快速实现特征变换发挥着重要的作用

文章插图
SparkSQL在特征变换主要有一下几类
- 多表场景,用于表之间拼接操作,比如交易信息表去拼接账户表
- 使用udf进行简单的特征变换,比如对时间戳进行hour函数处理
- 使用时间窗口和udaf进行时序类特征处理,比如计算一个人最近1天的消费金额总和
- 多表数据离线到在线怎么映射,即批量训练过程中输入很多表,到在线环境这些表该以什么形式存在,这点也会影响整个系统架构,做得好能够提升效率,做得不好就会大大增加模型产生业务价值的成本
- SQL转换成实时执行成本高,因为在线推理需要高性能,而数据科学家可能做出成千上万个特征,每个特征都人肉转换,会大大增加的工程成本
- 离线特征和在线特征保持一致困难,手动转换就会导致一致性能,而且往往很难一致
- 离线效果很棒但是在线效果无法满足业务需求
第四范式特征工程数据库是如何解决这些问题

文章插图
通过特征工程数据库让SparkSQL的能力得到了补充
- 以数据库的形式,解决了离线表到在线的映射问题,我们对前面给出的答案就是离线表是怎么分布的,在线也就怎么分布
- 通过同一套代码去执行离线和在线特征转换,让在线模型效果得到了保证
- 数据科学家与业务开发团队的合作以sql为传递介质,而不再是手工去转换代码,大大提升模型迭代效率
- 通过llvm加速的sql,相比scala实现的spark2.x和3.x在时序复杂特征场景能够加速2~3倍,在线通过in-memory的存储,能够保证sql能够在非常低延迟返回结果

文章插图
整个demo200多行代码,制作时间不超过半个小时
- train_sql.py 特征计算与训练, 80行代码
- predict_server.py 模型推理http服务, 129行代码
样例数据
id,vendor_id,pickup_datetime,dropoff_datetime,passenger_count,pickup_longitude,pickup_latitude,dropoff_longitude,dropoff_latitude,store_and_fwd_flag,trip_duration场景特征变换sql脚本
id3097625,1,2016-01-22 16:01:00,2016-01-22 16:15:16,2,-73.97746276855469,40.7613525390625,-73.95573425292969,40.772396087646484,N,856
id3196697,1,2016-01-28 07:20:18,2016-01-28 07:40:16,1,-73.98524475097656,40.75959777832031,-73.99615478515625,40.72945785522461,N,1198
id0224515,2,2016-01-31 00:48:27,2016-01-31 00:53:30,1,-73.98342895507812,40.7500114440918,-73.97383880615234,40.74980163574219,N,303
id3370903,1,2016-01-14 11:46:43,2016-01-14 12:25:33,2,-74.00027465820312,40.74786376953125,-73.86485290527344,40.77039337158203,N,2330
id2763851,2,2016-02-20 13:21:00,2016-02-20 13:45:56,1,-73.95218658447266,40.772220611572266,-73.9920425415039,40.74932098388672,N,1496
id0904926,1,2016-02-20 19:17:44,2016-02-20 19:33:19,4,-73.97344207763672,40.75189971923828,-73.98480224609375,40.76243209838867,N,935
id2026293,1,2016-02-25 01:16:23,2016-02-25 01:31:27,1,-73.9871597290039,40.68777847290039,-73.9115219116211,40.68180847167969,N,904
id1349988,1,2016-01-28 20:16:05,2016-01-28 20:21:36,1,-74.0028076171875,40.7338752746582,-73.9968032836914,40.743770599365234,N,331
id3218692,2,2016-02-17 16:43:27,2016-02-17 16:54:41,5,-73.98147583007812,40.77408218383789,-73.97216796875,40.76400375366211,N,674 `
特征变换
select trip_duration, passenger_count,
sum `(pickup_latitude) over w as vendor_sum_pl,`
推荐阅读
- 高考将至 有利孩子考高分的风水“小贴士”
- 大寒 , 年关将至 好茶把温暖带回家
- 霜降将至 冬天还会远吗
- 5个规则,确保你的微服务优化运行
- 心理测试 你的择偶标准是什么
- 充电器|逐渐“果化”?马斯克证实特斯拉将不再赠送移动充电器
- 古树滇红茶如何泡,福元昌2014年古树滇红100克即将上市
- 骁龙888|高通骁龙888+80W+OIS防抖全部下放!OPPO K10 Pro即将登场
- iPhone|传iPhone 14推出后iPhone 11将停产:一代LCD神机要拜拜了
- 天玑8100|不止首发天玑8100-MAX!一加Ace将搭载一代“神底”IMX766
