gpt4 book ai didi

python - 从 PySpark python 中的日期获取工作日名称

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:06 25 4
gpt4 key购买 nike

我使用此代码从字符串类型的日期返回日期名称:

import Pandas as pd
df = pd.Timestamp("2019-04-10")
print(df.weekday_name)

所以当我有“2019-04-10”时,代码返回“星期三”

我想将其应用到 Pyspark DataFrame 中的一列以获取文本中的日期名称。但似乎不起作用。

>+-------------+
|Reported Date|
+-------------+
| 1/07/2010|
| 1/07/2010|
| 1/07/2010|
| 1/07/2010|
| 1/07/2010|
| 1/07/2010|
| 1/07/2010|
+-------------+

我尝试这样做:

sparkDF.withColumn("day",weekday_name(pd.Timestamp('Reported Date')))

但我收到错误消息:NameError:名称“weekday_name”未定义

有人可以帮我解决这个问题吗?谢谢

最佳答案

PySpark 文档对此主题有点不清楚,但它内部使用 Java 日期格式。

你可以这样使用:

df.show()
+----------+
| date|
+----------+
|2010-01-07|
+----------+

df.printSchema()
root
|-- date: date (nullable = true)

现在,要获取工作日的简称,我们可以使用 E/EE/EEE如果你想要全名那么需要给出超过3个E,例如EEEE

简短形式:

import pyspark.sql.functions as f

df.withColumn('Day', f.date_format('date', 'E')).show()
+----------+---+
| date|Day|
+----------+---+
|2010-01-07|Thu|
+----------+---+

完整:

df.withColumn('Day', f.date_format('date', 'EEEE')).show()
+----------+--------+
| date| Day|
+----------+--------+
|2010-01-07|Thursday|
+----------+--------+

关于python - 从 PySpark python 中的日期获取工作日名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57742725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com