首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用to_timestamp函数转换6位数毫秒的时间戳

问如何用to_timestamp函数转换6位数毫秒的时间戳
EN

Stack Overflow用户
提问于 2022-07-29 15:59:19
回答 1查看 73关注 0票数 0

我的dataframe中有一个时间戳列,它的时间戳格式为: 2022-07-28T10:38:50.926866Z,目前是字符串。

我想把这一列转换成实际的时间戳,我已经搜索过了,但是每次我尝试使用这种类型的数据时,我都会得到空值。

我尝试过的事情:

代码语言:javascript
复制
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毫秒数字的例子上运行类似的东西时,它似乎是有效的:

代码语言:javascript
复制
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)

我完全不知道如何处理这个字符串转换。

EN

回答 1

Stack Overflow用户

发布于 2022-07-29 20:27:38

实际上,我最终解决了这个问题,首先删除每个时间戳字符串的最后4个字符,然后运行to_timestamp。我不介意失去小姐,所以这对我有用。

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73168037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档