【发布时间】:2016-07-18 21:14:54
【问题描述】:
假设我有以下数据:
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 最好)。抱歉,由于代码共享协议,我无法共享任何代码。
【问题讨论】:
-
所以我们知道您想要什么。现在,您为实现这一目标做了什么尝试?
-
@zero323 我已经用我尝试过的方法更新了我的问题。
标签: apache-spark apache-spark-sql window-functions