我有一個引數變數,我想把它變成一個日期變數,表示該月的最后一個作業日。根據我所讀到的內容,我可以將d=date.today()變成最后一個作業日,但不能只將202109。我的skript看起來是這樣的:
from pandas.tseries.offsets importBMonthEnd
from datetime import date
日期 = 202109
d = date_format(date, 'yyyyMM')
offset = BMonthEnd()
最后作業日 = offset.rollforward(d)
我很確定在把date變成d時出了問題,但我不知道如何解決。此外,你能告訴我如何在結果中只保留日期而放棄時間嗎?謝謝。
uj5u.com熱心網友回復:
IIUC,你希望在你的Spark資料框架中的DateType列等于輸入變數date中指定的本月的最后一個作業日。下面是一個解決方案
from datetime import datetime
from pandas.tseries.offsets import BMonthEnd
import pyspark.sql.function as F
# input variable[/span](輸入變數
日期=202109
# 獲得當前月份的最后一天(字串格式)
d = datetime.strptime(str(date), '%Y%m')
offset = BMonthEnd()
last_working_day = offset.rollforward(d)
my_date = last_working_day.strftime('%Y-%m-%d')
print(my_date)
# 2021-09-30。
# add column to spark dataframe.
df = df.withColumn('my_date', F.to_date(F.lit(my_date))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/310921.html
標籤:
上一篇:兩個日期之間的行數
