pyspark 如何格式化yyyymmdd列以显示为mm/dd/yyyy

9rygscc1  于 12个月前  发布在  Spark
关注(0)|答案(1)|浏览(127)

在Azure数据块中,pyspark已经有一个现有的数据块
DF1
| 名称|日期|
| --|--|
| 一| 20210720 |
| B| 20231005 |
| C| 20190215 |
我希望列日期可以格式如下
| 名称|日期|
| --|--|
| 一|2019 - 07 - 20 00:00:00|
| B| 2019 - 05 - 10 00:00:00|
| C| 2019 - 02 - 15|
我应该怎么写剧本?”
谢谢你

pu82cl6c

pu82cl6c1#

你可以编写类似下面的代码,这里我假设日期列是字符串类型的

from pyspark.sql.functions import date_format, to_date

data = [("20231030",), ("20231115",), ("20231225",)]
columns = ["date_string"]

df = spark.createDataFrame(data, columns)
df = df.withColumn("to_date_format", to_date(df["date_string"], "yyyyMMdd"))
df = df.withColumn("formatted_date", date_format(df["to_date_format"], "dd/MM/yyyy"))

df.show()
df.printSchema()

字符串
产出:

>>> df.show()
+-----------+--------------+--------------+
|date_string|to_date_format|formatted_date|
+-----------+--------------+--------------+
|   20231030|    2023-10-30|    30/10/2023|
|   20231115|    2023-11-15|    15/11/2023|
|   20231225|    2023-12-25|    25/12/2023|
+-----------+--------------+--------------+

>>> df.printSchema()
root
 |-- date_string: string (nullable = true)
 |-- to_date_format: date (nullable = true)
 |-- formatted_date: string (nullable = true)

相关问题