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

如何在PySpark中访问行内的interval day to second类型对象

在PySpark中直接提取interval day to second类型的值

针对你的需求,这里提供几种直接操作interval day to second类型列TimeSinceLastCleaningObj的方法:

1. 转换为字符串直观查看

将interval类型直接转为字符串,就能看到类似X days HH:mm:ss的可读格式:

from pyspark.sql.functions import col

df.select(
    "TimeSinceLastCleaningObj",
    col("TimeSinceLastCleaningObj").cast("string").alias("readable_interval")
).show(truncate=False)

2. 提取天、时、分、秒分量

使用extract或date_part函数拆分interval的各个时间分量,方便单独使用:

from pyspark.sql.functions import col, extract

df.select(
    "TimeSinceLastCleaningObj",
    extract("day", "TimeSinceLastCleaningObj").alias("days"),
    extract("hour", "TimeSinceLastCleaningObj").alias("hours"),
    extract("minute", "TimeSinceLastCleaningObj").alias("minutes"),
    extract("second", "TimeSinceLastCleaningObj").alias("seconds")
).show()

注:部分Spark版本也可使用date_part替代extract,用法一致,如date_part('day', col("TimeSinceLastCleaningObj"))

3. 转换为总秒数(与TimeSinceLastCleaning列对齐)

将interval类型转为long类型,直接得到时间差的总秒数,和你已有的TimeSinceLastCleaning列结果一致:

from pyspark.sql.functions import col

df.select(
    "TimeSinceLastCleaningObj",
    col("TimeSinceLastCleaningObj").cast("long").alias("total_seconds")
).show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:15:02