如何从pyspark数据库中的当前日期获取最近五个工作日期?

fdbelqdn  于 2023-05-16  发布在  Spark
关注(0)|答案(1)|浏览(209)

我想获取当前日期的最后五个日期,不包括星期六和星期日。例如,今天的日期是2023年5月4日(星期四),那么最后五个工作日将是4月28日(星期五),5月1日(星期一),5月2日(星期二),5月3日(星期三)和5月4日(星期四)。有办法做到这一点吗?

xriantvc

xriantvc1#

当然,从你的问题中,我不知道你到底想在哪里度过那些日子。然而,这里是如何在一个简单的 Dataframe 中显示它们:
`

from pyspark.sql.functions import current_date, col, when, date_format

number_of_previous_days = 5
WEEKENDS = ['Sat', 'Sun']
previous_days = current_date() - col("id").cast("Int")

select_previous_weekdays = when(~date_format(previous_days, format='EEE').isin(WEEKENDS), previous_days)
df = spark.range(number_of_previous_days + 1).withColumn("Previous_weekdays", select_previous_weekdays)

这将给予你一个带有id和Previous_weekdays列的dataframe,现在如果你不想要id或null值,你也可以这样做

df.select("Previous_weekdays").where(col("Previous_weekdays").isNotNull()).display()

`

相关问题