Pyspark基于今天获取上一季度的最后日期';日期

Pyspark基于今天获取上一季度的最后日期';日期,pyspark,palantir-foundry,foundry-code-workbooks,foundry-code-repositories,Pyspark,Palantir Foundry,Foundry Code Workbooks,Foundry Code Repositories,在代码回购中,使用pyspark,我试图使用今天的日期,基于此,我需要检索上一季度的最后一天。然后,该日期将用于过滤数据框中的数据。我试图在代码repo中创建一个数据帧,但这不起作用。我的代码在代码工作簿中工作。这是我的代码工作簿代码 将日期时间导入为dt 导入pyspark.sql.F函数 def unnamed(): date_df=spark.createDataFrame([(dt.date.today(),)],['date']) 日期=日期\ .带列('qtr\u开始日期',F.da

在代码回购中,使用pyspark,我试图使用今天的日期,基于此,我需要检索上一季度的最后一天。然后,该日期将用于过滤数据框中的数据。我试图在代码repo中创建一个数据帧,但这不起作用。我的代码在代码工作簿中工作。这是我的代码工作簿代码

将日期时间导入为dt
导入pyspark.sql.F函数
def unnamed():
date_df=spark.createDataFrame([(dt.date.today(),)],['date'])
日期=日期\
.带列('qtr\u开始日期',F.date\u trunc('quarter',F.col('date'))\
.withColumn('qtr_date',F.date_sub(F.col('qtr_start_date'),1))
返回日期

任何帮助都将不胜感激。

我在代码库中成功运行了以下代码:

from transforms.api导入转换\u df,输入,输出
将日期时间导入为dt
导入pyspark.sql.F函数
@变换(
输出(“/my/Output/dataset”),
)
定义我的计算函数(ctx):
date_df=ctx.spark_session.createDataFrame([(dt.date.today(),)],['date'])
日期=日期\
.带列('qtr\u开始日期',F.date\u trunc('quarter',F.col('date'))\
.withColumn('qtr_date',F.date_sub(F.col('qtr_start_date'),1))
返回日期
您需要将
ctx
参数传递到转换中,并且可以直接使用底层
spark\u会话
变量生成
pyspark.sql.DataFrame


如果您的输入中已经有了日期列,那么您只需要确保它是
date
类型,以便
F.date\u trunc
调用在正确的类型上工作。

“我试图在代码repo中创建一个数据帧,但这不起作用”-嘿,下次,如果你说它是如何工作的,那么帮助你会更容易。您是否收到错误消息,它是否给了您错误的日期,或者是否存在其他错误?