我有一个pyspark框架,具有以下类型的日期时间值(字符串类型)-
|text|date_filing|
|AAA|1998-12-22|
|BBBB|2023-08-30 12:03:17.814757+00|
|CCC|null|
|DDD|2017-11-28|
我想把它转换成字符串格式,但在一个特定的格式-“yyyy-MM-ddTHH:mm:ssZ”
我尝试了下面的方法-
df.withColumn('time_start',when((df.date_filing.isNull() | (df.date_filing == '')) ,'').otherwise(to_timestamp(col("date_filing"), "yyyy-MM-dd'T'HH:mm:ss'Z'")))
但是在新列中得到null。
预期产出-
|text|date_filing|
|AAA|1998-12-22T00:00:00Z|
|BBBB|2023-08-30T12:03:17Z|
|CCC||
|DDD|2017-11-28T00:00:00|
如果你能帮忙的话,我将不胜感激。
1条答案
按热度按时间f87krz0w1#
可以使用pyspark.sql.functions模块中的date_format函数将日期字符串格式化为所需的格式。下面是一个示例:
在本例中,我们首先从pyspark.sql.functions模块导入必要的函数。然后,我们使用withColumn方法将一个新列添加到名为date_filing_formatted的对象框架中。我们使用when和otherwise函数来处理date_filing列为null或空的情况。然后,我们使用to_timestamp函数将date_filing列转换为时间戳,并使用date_format函数将时间戳格式化为所需的格式。生成的框架将有一个名为date_filing_formatted的新列,日期字符串的格式为“yyyy-MM-ddTHH:mm:ssZ”。