You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中生成不带时区的current_timestamp()?

解决Spark DataFrame导出CSV时时间戳带时区的问题

我之前也碰到过一模一样的问题!你用F.current_timestamp()生成的是带时区的TimestampType字段,Spark导出CSV时会默认保留时区信息,所以才会出现2019-11-19T16:59:44.000+05:30这种格式。

要得到你想要的yyyy-MM-dd HH:mm:ss格式,只需要用date_format()函数把timestamp类型转换成指定格式的字符串就可以了,代码如下:

from pyspark.sql import functions as F

# 生成时间戳并转换为目标格式的字符串
df_new = df.withColumn('LOAD_DATE_TIME', F.date_format(F.current_timestamp(), 'yyyy-MM-dd HH:mm:ss'))

这样处理之后,导出CSV时LOAD_DATE_TIME列就会显示成2019-11-19 16:59:44,完全没有时区部分啦。

如果之后你需要把这个字符串重新转回timestamp类型(不带时区),也可以用to_timestamp()函数:

df_new = df_new.withColumn('LOAD_DATE_TIME', F.to_timestamp('LOAD_DATE_TIME', 'yyyy-MM-dd HH:mm:ss'))

不过如果只是为了导出CSV的话,第一步转成字符串就完全够用了~

内容的提问来源于stack exchange,提问作者anidev711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:37:13