Pyspark 列:将字符串格式的数据转换为时间戳格式

Posted

技术标签:

【中文标题】Pyspark 列:将字符串格式的数据转换为时间戳格式【英文标题】:Pyspark column: Convert data in string format to timestamp format 【发布时间】:2020-11-13 02:53:31 【问题描述】:

我正在尝试将一个字符串格式的 pyspark 列转换为时间戳格式

我尝试如下,但我得到该列的空值。

谢谢

Example data:   06/19/17 00:00:00

df = df.withColumn("date", to_timestamp(col("date"), "MM/dd/yyy HHmm"))

当我尝试如下投射时

df = df.withColumn("date",(col("invoice_date").cast(TimestampType())))

output: 2017-06-19T00:00:00.000+0000

预期输出:

 06/19/17 00:00:00

【问题讨论】:

【参考方案1】:

你可以这样做:

from pyspark.sql import functions as F

df.withColumn("date", F.from_unixtime(F.unix_timestamp("date", \
    'MM/dd/yy HH:mm:ss'),'MM-dd-yy HH:mm:ss')).show()

+-----------------+
|             date|
+-----------------+
|06-19-17 00:00:00|
+-----------------+

【讨论】:

以上是关于Pyspark 列:将字符串格式的数据转换为时间戳格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有日期格式转换为日期列的时间戳?

pyspark createdataframe:字符串解释为时间戳,模式混合列

将列转换为时间戳 - Pandas Dataframe

将文本列转换为时间戳

将日光节约时间字符串转换为时间戳会产生错误的结果

BigQuery - 使用默认值将字符串转换为时间戳