Spark版本:2.1
我正在尝试将字符串datetime列转换为yyyy-mm-ddThh:mm:ss
的utc时间戳
首先,我将字符串列的格式改为yyyy-mm-ddThh:mm:ss
,然后将其转换为时间戳类型,之后我将使用to_utc_timestamp
函数将时间戳转换为UTC。
df.select(
f.to_timestamp(
f.date_format(f.col("time"), "yyyy-MM-dd'T'HH:mm:ss"), "yyyy-MM-dd'T'HH:mm:ss"
)
).show(5, False)
date_format
可以很好地为我提供正确的格式。但是,当我在结果上执行to_timestamp
时,格式变成了yyyy-MM-dd HH:mm:ss
,而它应该是yyyy-MM-dd'T'HH:mm:ss
。为什么会发生这种情况?
有人能告诉我如何保留date_format给出的格式吗?我该怎么做?
2条答案
按热度按时间6rqinv9w1#
函数to_timestamp将字符串返回给时间戳,格式为
yyyy-MM-dd HH:mm:ss
。第二个参数用于定义尝试分析的字符串中DateTime的格式。
您可以在official documentation中看到几个示例。
gudnpqoy2#
代码应该是这样的,只看这里的单个“d”部分,这在很多情况下都很棘手。