分享

电商中最佳商品组合计算

现在有个数据表:店铺     订单    sku详情(sku编号:数量)
xxx旗舰店      ECO001    [SKU1:8,sku2:3,sku3:5]
xxx旗舰店      ECO002    [SKU1:1,sku2:3]
xxx旗舰店      ECO003    [SKU2:6]



此时  xxx旗舰店:   sku1 出现的次数是2数量是9,sku2 出现的次数是2数量是12,sku3出现的次数是1数量是5
sku1 + sku2 出现的次数是2数量是15
sku1 + sku2 + sku3出现的次数是1数量是9


这种组合中可能有子组合出现在其他订单中,那么这个子组合的出现次数和总数量怎么算?
数学没学好,还望大家给建议



补充内容 (2018-12-6 10:06):
已经实现&分享

已有(2)人评论

跳转到指定楼层
s060403072 发表于 2018-11-14 20:24:40
这个看你用什么技术了。思想来说:
可以通过一个reduce统计出来,他们出现的个数和次数,但是性能有点慢。所以可以通过分组统计,各个reduce统计完毕,然后在汇总。
当然spark应该也可以的。
回复

使用道具 举报

zhuqitian 发表于 2018-11-15 13:51:58
s060403072 发表于 2018-11-14 20:24
这个看你用什么技术了。思想来说:
可以通过一个reduce统计出来,他们出现的个数和次数,但是性能有点慢。 ...

感谢你的建议,我想用java写的,实现了之后就考虑放到spark中跑
分几个阶段,先sparkSQL拿到聚合后的商品信息,再根据商品组合按商品ID排序,拿到每个订单中的组合
再对每个组合遍历拿到topN组合:
key出现的可能性很多,比如1,2,3,4,5可能会有以下几种组合:    12,13,14,15,23,24,25,34,35  123,124,125,134,135,145  1234,1345  12345   这些子组合可能在其他商品中出现

考虑了一下,这个还得写个小算法,把每个组合可能出现的子组合都拿出来


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条