Spark SQL中与SQL的dateadd(秒)功能对等的函数是什么
Spark SQL为timestamp类型列累加秒级间隔的实现方案
date_add()函数仅支持按天维度做时间偏移,如需累加秒级间隔,可使用以下两种方案:
方案1:使用INTERVAL关键字(全版本兼容)
该写法兼容所有Spark版本,语法直观,支持直接对timestamp类型列做任意时间单位的偏移:
- 纯Spark SQL用法示例
假设待操作表为source_table,timestamp类型列为event_time,累加10秒的写法如下:SELECT event_time + INTERVAL 10 SECONDS AS event_time_add_10s FROM source_table; - DataFrame API用法示例
import org.apache.spark.sql.functions.expr // 原始DataFrame为sourceDF,新增列存储偏移后的时间 val resultDF = sourceDF.withColumn("event_time_add_10s", expr("event_time + INTERVAL 10 SECONDS"))
方案2:使用timestampadd()函数(Spark 3.1及以上版本支持)
该函数支持自定义偏移单位,参数顺序为[时间单位, 偏移量, 原始时间列]:
- 纯Spark SQL用法示例
SELECT timestampadd(SECOND, 10, event_time) AS event_time_add_10s FROM source_table; - DataFrame API用法示例
import org.apache.spark.sql.functions.{timestampadd, lit, col} val resultDF = sourceDF.withColumn("event_time_add_10s", timestampadd(lit("SECOND"), lit(10), col("event_time")))
内容的提问来源于stack exchange,提问作者proutray
相关产品推荐
相关产品推荐

