我有一个 SQL Server 代码片段,其中存储过程。使用 DATEADD 函数将分钟添加到时间戳。这是代码:
DATEADD(minute, no_of_minutes_to_add, timestamp_column) AS new_timestamp
我的要求是将此存储过程代码转换为pyspark sql代码。
我需要在 Spark SQL 中运行相同的代码。然而,虽然 Spark SQL 确实有 DATE_ADD 函数,但它只允许添加天数,没有参数来指定分钟、天或月。
在 Spark SQL 中向时间戳添加分钟的正确方法是什么?
Spark SQL 中是否有等效函数或解决方法来实现此目的?
我会这样做:
import datetime
schema = StructType([StructField("current_timestamp", TimestampType(), True)])
df = spark.createDataFrame([(datetime.datetime.now(),)], schema)
df.show(truncate=False)
+--------------------------+
|current_timestamp |
+--------------------------+
|2024-05-07 06:10:19.994861|
+--------------------------+
df = df.withColumn('current_timestamp_plus_10_mins', df['current_timestamp'] + expr("INTERVAL 10 MINUTES"))
df.show(truncate=False)
+--------------------------+------------------------------+
|current_timestamp |current_timestamp_plus_10_mins|
+--------------------------+------------------------------+
|2024-05-07 06:10:19.994861|2024-05-07 06:20:19.994861 |
+--------------------------+------------------------------+