如何在 Spark SQL 中向时间戳添加分钟?

问题描述 投票:0回答:1

我有一个 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 中是否有等效函数或解决方法来实现此目的?

apache-spark pyspark apache-spark-sql
1个回答
0
投票

我会这样做:

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    |
+--------------------------+------------------------------+

© www.soinside.com 2019 - 2024. All rights reserved.