【问题标题】:pyspark: change string to timestamppyspark:将字符串更改为时间戳
【发布时间】:2021-03-24 11:03:01
【问题描述】:

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

date
null
22-04-2020
date
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)

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

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

【问题讨论】:

    标签: pyspark apache-spark-sql type-conversion sql-timestamp to-timestamp


    【解决方案1】:

    您的时间戳格式应该以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|
    +-------------------+
    

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 2021-06-28
      相关资源
      最近更新 更多