-1

我有一个字符串格式的列,有些行也是空的。我添加了随机时间戳以使其以下列形式转换为时间戳。

日期
无效的
22-04-2020
日期
01-01-1990 23:59:59.000
22-04-2020 23:59:59.000

df = df.withColumn('date', F.concat (df.date, F.lit(" 23:59:59.000")))
df = df.withColumn('date', F.when(F.col('date').isNull(), '01-01-1990 23:59:59.000').otherwise(F.col('date')))

df.withColumn("date",      F.to_timestamp(F.col("date"),"MM-dd-yyyy HH mm ss SSS")).show(2)

但在此之后,列日期变为空。

谁能帮我解决这个问题。将字符串直接转换为时间戳

4

1 回答 1

0

您的时间戳格式应以dd-MM, not开头MM-dd,并且您在时间部分还缺少一些冒号和点。试试下面的代码:

df.withColumn("date", F.to_timestamp(F.col("date"),"dd-MM-yyyy HH:mm:ss.SSS")).show()
+-------------------+
|               date|
+-------------------+
|1990-01-01 23:59:59|
|2020-04-22 23:59:59|
+-------------------+
于 2021-03-24T11:06:53.437 回答