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

PySpark中如何将Timestamp截断到小时并将列值存储为变量

Spark时间戳截断至小时并存储为变量

步骤1:处理Spark DataFrame中的时间戳列

用Spark的date_trunc函数把timestamp列截断到小时级别,同时保留时区信息:

from pyspark.sql import functions as F

# 假设你的原始DataFrame名为df
df = df.withColumn(
    "timestamp_hour",
    # 截断到小时后转为timestamp类型,保证时区信息不丢失
    F.date_trunc("hour", F.col("timestamp")).cast("timestamp")
)

步骤2:提取值到Python变量并格式化

用date_format指定目标输出格式,再提取第一行的值赋值给变量:

# 提取并格式化时间戳为要求的字符串格式
timestamp_hour = df.select(
    F.date_format(
        F.col("timestamp_hour"),
        "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"  # 匹配目标格式的模板
    )
).first()[0]

# 执行打印
print(timestamp_hour)
# 输出结果:'2023-03-01T17:00:00.000+0000'

补充:Spark SQL实现方式

如果习惯用SQL语法,可直接编写查询语句:

SELECT 
    date_format(date_trunc('hour', timestamp), 'yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX') AS timestamp_hour
FROM your_table_name

之后提取查询结果的第一行值到变量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:55:06