r—计算一年内的累计和

hm2xizp9  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(452)

如何计算一年中的累计金额?
dplyr公司:

iris %>% group_by(Species) %>% mutate(col = cumsum(Sepal.Length))
``` `cumsum` 不是sparklyr中包含的函数,如何在sparklyr中重现该函数?
我认为sparksql应该是这样的:

SELECT
*,
sum(Sepal.Length) OVER (PARTITION BY Species ORDER BY index) as col
FROM
iris

更新: `cumsum` 是一个可以在sparklyr中使用的函数,它只需要先调用一个arrange动词(这在本地r中不是必需的)

iris %>%
sdf_copy_to %>%
group_by(Species) %>%
arrange(Sepal.Length) %>%
mutate(col = cumsum(Sepal.Length))

c3frrgcw

c3frrgcw1#

如果您知道正确的语法,您可以在sparklyr中编写sql,在本例中,原始sql(假设您的索引是sepal\ u length)是:

SELECT * 
  , SUM(Sepal_Length) OVER (PARTITION BY Species ORDER BY Sepal_Length) AS CumSum
FROM iris

如果您想在SparkyR中这样做,您只需执行以下操作:

iris2 <- iris %>%
          mutate(CumSum = sql("
                 SUM(Sepal_Length) OVER (PARTITION BY Species ORDER BY Sepal_Length)
                 "))

相关问题