如何在spark数据框中添加当前日期的额外列

a1o7rhls  于 2021-05-27  发布在  Spark
关注(0)|答案(3)|浏览(595)

我正在尝试使用withcolumn方法在现有pyspark数据框中添加一列。我想在此列中插入当前日期。从源代码中,我没有任何日期列,因此我将此当前日期列添加到数据框中,并将此数据框保存在表中,以便以后出于跟踪目的,我可以使用此当前日期列。我正在使用下面的代码

df2=df.withColumn("Curr_date",datetime.now().strftime('%Y-%m-%d'))

这里df是我现有的Dataframe,我想将df2保存为带有curr\u date列的表。但这里需要的是现有列或lit方法,而不是datetime.now().strftime(“%y-%m-%d”)。有人请指导我如何在我的数据框中添加此日期列。?

moiiocjp

moiiocjp1#

有一个Spark函数 current_timestamp() .

from pyspark.sql.functions import *

df.withColumn('current', date_format(current_timestamp(), 'yyyy-MM-dd')).show()

+----+----------+
|test|   current|
+----+----------+
|test|2020-09-09|
+----+----------+
tmb3ates

tmb3ates2#

使用其中一个 lit 或者 current_date ```
from pyspark.sql import functions as F

df2 = df.withColumn("Curr_date", F.lit(datetime.now().strftime("%Y-%m-%d")))

OR

df2 = df.withColumn("Curr_date", F.current_date())

vohkndzv

vohkndzv3#

current_timestamp() 很好,但在序列化期间对其进行了评估。
如果你喜欢使用 timestamp 一行的处理时间,则可以使用以下方法,

withColumn('current', expr("reflect('java.time.LocalDateTime', 'now')"))

相关问题