Pyspark 如何在spark sql中将日期格式从字符串(2020年6月24日)更改为日期24-06-2020?

Pyspark 如何在spark sql中将日期格式从字符串(2020年6月24日)更改为日期24-06-2020?,pyspark,apache-spark-sql,databricks,Pyspark,Apache Spark Sql,Databricks,我有一列字符串值,比如'24 Jun 2020',我想将其转换为日期类型 在从字符串转换为日期类型时,是否有方法指定输入和输出日期格式。Spark日期格式是yyyy-MM-dd您可以使用到日期、到时间戳、从unixtime+unix时间戳函数将字符串更改为日期 示例: df.show() #+-----------+ #| dt| #+-----------+ #|24 Jun 2020| #+-----------+ #using to_date function df.wi

我有一列字符串值,比如'24 Jun 2020',我想将其转换为日期类型


在从字符串转换为日期类型时,是否有方法指定输入和输出日期格式。

Spark日期格式是
yyyy-MM-dd
您可以使用
到日期、到时间戳、从unixtime+unix时间戳
函数将字符串更改为日期

示例:

df.show()
#+-----------+
#|         dt|
#+-----------+
#|24 Jun 2020|
#+-----------+

#using to_date function
df.withColumn("new_format", to_date(col("dt"),'dd MMM yyyy')).show()

#using to_timestamp function
df.withColumn("new_format", to_timestamp(col("dt"),'dd MMM yyyy').cast("date")).show()
#+-----------+----------+
#|         dt|new_format|
#+-----------+----------+
#|24 Jun 2020|2020-06-24|
#+-----------+----------+

df.withColumn("new_format", to_date(col("dt"),'dd MMM yyyy')).printSchema()
#root
# |-- dt: string (nullable = true)
# |-- new_format: date (nullable = true)

Spark日期格式为
yyyy-MM-dd
您可以使用
到日期、到时间戳、从unixtime+unix到时间戳
函数将字符串更改为日期

示例:

df.show()
#+-----------+
#|         dt|
#+-----------+
#|24 Jun 2020|
#+-----------+

#using to_date function
df.withColumn("new_format", to_date(col("dt"),'dd MMM yyyy')).show()

#using to_timestamp function
df.withColumn("new_format", to_timestamp(col("dt"),'dd MMM yyyy').cast("date")).show()
#+-----------+----------+
#|         dt|new_format|
#+-----------+----------+
#|24 Jun 2020|2020-06-24|
#+-----------+----------+

df.withColumn("new_format", to_date(col("dt"),'dd MMM yyyy')).printSchema()
#root
# |-- dt: string (nullable = true)
# |-- new_format: date (nullable = true)

日期的默认日期格式为
yyyy-MM-dd
-

val df1=Seq(“2020年6月24日”).toDF(“dateStringType”)
df1.显示(错误)
/**
* +--------------+
*| dateStringType|
* +--------------+
*2020年6月24日|
* +--------------+
*/
//默认日期格式为“yyyy-MM-dd”
df1.withColumn(“dateDateType”,to_date($“dateStringType”,“dd-MMM-yyyy”))
.show(假)
/**
* +--------------+------------+
*| dateStringType | dateDateType|
* +--------------+------------+
*| 2020年6月24日| 2020-06-24|
* +--------------+------------+
*/
//使用日期格式将默认日期格式更改为“dd-MM-yyyy”
df1.带列(“changDefaultFormat”,日期格式(截止日期($“dateStringType”,“dd-MMM-yyyy”),“dd-MM-yyyy”))
.show(假)
/**
* +--------------+------------------+
*| dateStringType |默认格式|
* +--------------+------------------+
*| 2020年6月24日| 2020年6月24日|
* +--------------+------------------+
*/

日期的默认日期格式为
yyyy-MM-dd
-

val df1=Seq(“2020年6月24日”).toDF(“dateStringType”)
df1.显示(错误)
/**
* +--------------+
*| dateStringType|
* +--------------+
*2020年6月24日|
* +--------------+
*/
//默认日期格式为“yyyy-MM-dd”
df1.withColumn(“dateDateType”,to_date($“dateStringType”,“dd-MMM-yyyy”))
.show(假)
/**
* +--------------+------------+
*| dateStringType | dateDateType|
* +--------------+------------+
*| 2020年6月24日| 2020-06-24|
* +--------------+------------+
*/
//使用日期格式将默认日期格式更改为“dd-MM-yyyy”
df1.带列(“changDefaultFormat”,日期格式(截止日期($“dateStringType”,“dd-MMM-yyyy”),“dd-MM-yyyy”))
.show(假)
/**
* +--------------+------------------+
*| dateStringType |默认格式|
* +--------------+------------------+
*| 2020年6月24日| 2020年6月24日|
* +--------------+------------------+
*/

你可以使用任何答案