apache-spark - 如何使用 pyspark 从每日数据中计算 6 个月移动平均值
问题描述
我正在尝试计算 pyspark 过去六个月的移动平均价格。
目前我的表有 6 个月的滞后日期。
id dates lagged_6month price
1 2017-06-02 2016-12-02 14.8
1 2017-08-09 2017-02-09 16.65
2 2017-08-16 2017-02-16 16
2 2018-05-14 2017-11-14 21.05
3 2017-09-01 2017-03-01 16.75
期望的结果
id dates avg6mprice
1 2017-06-02 20.6
1 2017-08-09 21.5
2 2017-08-16 16.25
2 2018-05-14 25.05
3 2017-09-01 17.75
示例代码
from pyspark.sql.functions import col
from pyspark.sql import functions as F
df = sqlContext.table("price_table")
w = Window.partitionBy([col('id')]).rangeBetween(col('dates'),col('lagged_6month'))
RangeBetween 似乎不接受列作为窗口函数中的参数。
解决方案
推荐阅读
- python - 如何使用 python 处理我的研究数据?
- javascript - 如何正确地将仿射变换应用于使用有符号距离函数渲染的场景的顶点
- sql - 如何将我的查询结果显示为字符串的一部分?
- angular - 无法通过 Angular 模板上的 Codelyzer 禁用 tslint 规则
- meta - 什么组织创建或保管 HTML 元标记?
- selenium - windows10上IE11切换窗口时出错
- axon - Axon Token [IndexTrackingToken{globalIndex=2}] 类型错误
- c# - Windows Auth on MVC 5 asks to log in and denies valid user if I add filters
- javascript - Vue将响应数据重定向到vue对象
- c++ - 为什么这是一种未定义的行为?