[英]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.