假设我们有一个如下的嵌套结构df = spark.createDataFrame([ ("2023-10-26",), ("2022-09-01",), ("2021-08-10",), ], ["start_date"]) df.show()
我想生成一个新的列,其中包含一个新的日期,该日期是通过在我的df中的“start_date”中减去或添加特定的日期而获得的,同时排除周末(假设是星期六和星期日),这需要在不使用UDF的情况下完成。换句话说,我试图使用PySpark复制Qlik的“firstworkdate”函数部分
DBR版本- 12.2 LTS,
Spark版本- 3.3.2
Azure数据库环境
我知道这可以使用UDF来完成,但我不想使用UDF,因为Unity catalouge不支持它。
特定于会话的UDF定义在我的情况下也不起作用
1条答案
按热度按时间hl0ma9xz1#
我在PySpark中尝试了以下方法:
col
用于引用DataFrame列,date_add
用于将日期添加到日期,dayofweek
用于获取给定日期的星期几,when
用于条件表达式。dayofweek
来确定结果日期福尔斯是否落在周末(1代表星期日,7代表星期六)。when
和otherwise
来调整“new_date”列,如果福尔斯是周末,则添加2天。字符串