问题描述
- 电商场景中,优惠、运费等是以订单为单位进行计算的
- 若要以商品维度进行分析,就要把优惠、运费等的效果分摊到每个商品
- 分摊方法:
分 摊 比 重 = 每 种 商 品 的 金 额 商 品 总 额 分摊比重=\frac{每种商品的金额}{商品总额} 分摊比重=商品总额每种商品的金额 - 问题来了,由于除法有时除不尽,导致合计有差
- 改进方法:
最 后 一 种 商 品 分 摊 比 重 = 1 − 其 它 分 摊 比 重 累 加 最后一种商品分摊比重 = 1 - 其它分摊比重累加 最后一种商品分摊比重=1−其它分摊比重累加 - 判断是否最后一种商品:
商 品 总 额 − 已 经 分 摊 的 商 品 金 额 累 加 = = 商 品 金 额 商品总额 - 已经分摊的商品金额累加 == 商品金额 商品总额−已经分摊的商品金额累加==商品金额

Python实现
运费分摊
data = [
('a1', ['牛奶', '坚果', '蛋糕'], [30, 30, 30], 10, 100),
('a2', ['酸奶', '坚果', '蛋糕'],

本文介绍了电商场景中商品维度的优惠和运费分摊方法,通过Python、HIVE和Spark三种方式实现。首先提出了分摊比重的计算公式,并针对除不尽的情况提出改进策略,确保总和准确。接着,分别展示了Python代码示例,HIVE SQL创建视图的过程,以及Spark SQL的分摊计算。这些实现有助于理解费用分摊逻辑并应用于实际业务分析。
最低0.47元/天 解锁文章
957





