如何解决SparkR:如何将工作日没有周末的工作日添加到日期
我正在尝试向 SparkDataFrmae 中的日期列添加特定数量的工作日 (BD)。
DATE_IN
1 2021-03-25
例如,如果旧日期为 2021-03-25
,我们将添加 2 BD
,新日期将为 2021-03-29
,输出应为:
DATE_IN DATE_OUT
1 2021-03-25 2021-03-29
我找到了使用迭代的解决方案,如波纹管示例:
DATEADD <- function(date_conv,increment){
date_out <- date_conv
for(i in 1:as.numeric(increment)){
date_out <- ifelse(dayofweek(date_out) == (1 | 6),date_add(date_out,2),ifelse(dayofweek(date_out) == 5,3),1)
)
)
}
return(date_out)
}
df <- df %>% withColumn("DATE_OUT",DATEADD(column("DATE_IN"),2))
head(df)
但是这个速度很慢,而且会占用大量的 GC 内存
是否存在一种清晰、更优雅的方式来添加迄今为止的工作日?
注意:没有 expr
因为我试图将总和执行到一个函数中,而输入日期是一个没有数据框的独立列
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。