我使用此代码从字符串类型的日期返回日期名称:
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”未定义
有人可以帮我吗?谢谢
答案 0 :(得分:0)
PySpark文档对此主题尚不清楚,但它内部使用Java Date格式。
您可以这样使用:
df.show()
+----------+
| date|
+----------+
|2010-01-07|
+----------+
df.printSchema()
root
|-- date: date (nullable = true)
现在,要获取工作日的简称,我们可以使用E/EE/EEE
,如果您想使用的全名,则需要提供3个以上的{E {1}}
简短形式:
EEEE
完整
:
df.withColumn('Day', f.date_format('date', 'E')).show()
+----------+---+
| date|Day|
+----------+---+
|2010-01-07|Thu|
+----------+---+