簡體   English   中英

pyspark:將字符串更改為時間戳

[英]pyspark: change string to timestamp

我有一列字符串格式,有些行也是 null。 我添加了隨機時間戳以使其以下列形式轉換為時間戳。

日期
null
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)

但在此之后,列日期變為 null。

誰能幫我解決這個問題。 將字符串直接轉換為時間戳

您的時間戳格式應以dd-MM開頭,而不是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|
+-------------------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM