Pyspark -转换为时间戳

yqkkidmi  于 2022-11-30  发布在  Apache
关注(0)|答案(2)|浏览(292)

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给出的格式吗?我该怎么做?

6rqinv9w

6rqinv9w1#

函数to_timestamp将字符串返回给时间戳,格式为yyyy-MM-dd HH:mm:ss
第二个参数用于定义尝试分析的字符串中DateTime的格式。
您可以在official documentation中看到几个示例。

gudnpqoy

gudnpqoy2#

代码应该是这样的,只看这里的单个“d”部分,这在很多情况下都很棘手。

data= data.withColumn('date', to_timestamp(col('date'), 'yyyy/MM/d'))

相关问题