我的dataframe中有一个时间戳列,它的时间戳格式为: 2022-07-28T10:38:50.926866Z,目前是字符串。
我想把这一列转换成实际的时间戳,我已经搜索过了,但是每次我尝试使用这种类型的数据时,我都会得到空值。
我尝试过的事情:
df = spark.createDataFrame([("2022-07-28T10:38:50.926866Z",)],['date_str'])
df.withColumn("ts1", F.to_timestamp(col('date_str'), "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'")).show(truncate=False)这总是得到null,但是当我在一个只有3毫秒数字的例子上运行类似的东西时,它似乎是有效的:
df = spark.createDataFrame([("2022-07-28T10:38:50.926Z",)],['date_str'])
df.withColumn("ts1", F.to_timestamp(col('date_str'), "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")).show(truncate=False)我完全不知道如何处理这个字符串转换。
发布于 2022-07-29 20:27:38
实际上,我最终解决了这个问题,首先删除每个时间戳字符串的最后4个字符,然后运行to_timestamp。我不介意失去小姐,所以这对我有用。
df = df.withColumn("date_str", F.substring("date_str", 1, 23))
df.withColumn("date_str", F.to_timestamp(df_final.date_str, "yyyy-MM-dd'T'HH:mm:ss.SSS")).show()https://stackoverflow.com/questions/73168037
复制相似问题