当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions to_date方法用法及代码示例


PySpark SQL 函数的 to_date() 方法将日期字符串转换为日期类型。

参数

1. col | Column

日期字符串列。

2. format | string

日期字符串的格式。

返回值

PySpark 专栏。

例子

考虑以下带有一些日期字符串的 PySpark DataFrame:

df = spark.createDataFrame([["Alex", "1995-12-16"], ["Bob", "1998-05-06"]], ["name", "birthday"])
df.show()



+----+----------+
|name|  birthday|
+----+----------+
|Alex|1995-12-16|
| Bob|1998-05-06|
+----+----------+

将PySpark中的日期字符串转换为日期类型

要将 birthday 列中的日期字符串转换为实际的 date 类型,请使用 to_date(~) 并指定日期字符串的模式:

from pyspark.sql import functions as F
df_new = df.withColumn("birthday", F.to_date(df["birthday"], "yyyy-MM-dd"))
df_new.printSchema()



root
 |-- name: string (nullable = true)
 |-- birthday: date (nullable = true)

此处, withColumn(~) 方法用于使用 to_date(~) 返回的新列来更新 birthday 列。

作为另一个示例,这是一个带有稍微复杂的日期字符串的 PySpark DataFrame:

df = spark.createDataFrame([["Alex", "1995/12/16 16:20:20"], ["Bob", "1998/05/06 18:56:10"]], ["name", "birthday"])
df.show()



+----+----------+
|name|  birthday|
+----+----------+
|Alex|1995-12-16|
| Bob|1998-05-06|
+----+----------+

在这里,我们的日期字符串还包含小时、分钟和秒。

要将 birthday 列转换为 date 类型:

df_new = df.withColumn("birthday", F.to_date(df["birthday"], "yyyy/MM/dd HH:mm:ss"))
df_new.show()



+----+----------+
|name|  birthday|
+----+----------+
|Alex|1995-12-16|
| Bob|1998-05-06|
+----+----------+

在这里,请注意有关小时、分钟和秒单位的信息在类型转换期间是如何丢失的。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | to_date method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。