在pyspark数据框中添加日期和日历周列

nfs0ujit  于 2021-05-22  发布在  Spark
关注(0)|答案(2)|浏览(633)

我用的是spark 2.4.5。我想在pyspark数据框df中添加两个新列,date和calendar week。所以我尝试了以下代码:

from pyspark.sql.functions import lit
df.withColumn('timestamp', F.lit('2020-05-01'))
df.show()

但我收到了错误信息: AssertionError: col should be Column 你能解释一下如何添加日期栏和日历周吗?

mqkwyuun

mqkwyuun1#

我在这里看到了两个问题:第一,如何给一个日期设置一个字符串。第二,如何从日期中得到一年中的一周。

迄今为止的强制转换字符串

你可以使用 cast("date") 或者更具体一点 F.to_date .

df = df.withColumn("date", F.to_date("timestamp", "yyyy-MM-dd"))

提取一年中的一周

使用“格式化日期”可以将日期列格式化为所需的任何格式。 w 是一年中的一周。 W 将是本月的一周。

df = df.withColumn("week_of_year", F.date_format("date", "w"))

相关问题:pyspark获得周数月数

eanckbw9

eanckbw92#

看来你错过了比赛 lit 在代码中的函数。以下是您要找的内容:

df = df.withColumn("date", lit('2020-05-01'))

这是你的答案,如果你想硬编码的日期和星期。如果您想以编程方式派生当前时间戳,我建议使用udf。

相关问题