估计线性拟合作为移动平均线

时间:2016-07-18 21:14:55

标签: apache-spark apache-spark-sql window-functions

说我有以下数据:

Year  Day  Amount
2015  1    2
2015  2    3
2015  3    4
2015  4    5

使用窗口函数或聚合,我想为每一行代表“基于前n行的线性”得到一个数字。在这个简单的例子中,对于day = 4行,由于显而易见的原因,基于前n天,n为3,线性度会相当高。

当某些前几天不存在时会弹出问题,在这种情况下,我只想使用默认值-1,例如以其他方式指示。

我没有一个确切的值我想表示线性,但作为一个例子,类似于相关系数,1可以表示高线性,而0表示没有。

编辑:

我作为临时用例所做的是在表示当天(并考虑到年份)的每一行中添加一列,并使用窗口函数,使用滞后来查找前4个值(如果它们存在) 。在得到(或没有得到这些值)之后,我做了一个简单的计算来计算每个点组合的差异,并使用除法来看它们彼此之间的距离(1是最好的)。我很抱歉,由于代码共享协议,我无法共享任何代码。

1 个答案:

答案 0 :(得分:0)

  • 生成包含您要估算的所有日期的系列
  • 左外连接输入
  • null的值Amount替换为估值值
  • 转换为RDD
  • 生成具有下限的键 - > 2015 4生成密钥[2015 42015 32015 2] amd flatten
  • groupByKey
  • 估计小组