在 PySpark 中如何将时间戳值四舍五入到最接近的分钟?
In PySpark how to round a timestamp value to the nearest minute?
我试图在 PySpark 中对时间戳列进行四舍五入,我无法使用 date_trunc 函数,因为它只会向下舍入值..
例如:
Real Value Expected Round Up/Down
2020-11-03 18:25:04 -> 2020-11-03 18:25:00
2020-11-03 18:21:44 -> 2020-11-03 18:22:00
我不想使用 pandas 做解决方案..
您可以将时间戳增加 30 秒,然后截断到分钟。这假设您的列名为 'time'
import pyspark.sql.functions as f
df = df.withColumn('time_minute', f.date_trunc('minute', f.col('time') + f.expr('INTERVAL 30 SECONDS')))
+-------------------+-------------------+
| time| time_minute|
+-------------------+-------------------+
|2020-11-03 18:25:04|2020-11-03 18:25:00|
|2020-11-03 18:21:44|2020-11-03 18:22:00|
+-------------------+-------------------+
我试图在 PySpark 中对时间戳列进行四舍五入,我无法使用 date_trunc 函数,因为它只会向下舍入值..
例如:
Real Value Expected Round Up/Down
2020-11-03 18:25:04 -> 2020-11-03 18:25:00
2020-11-03 18:21:44 -> 2020-11-03 18:22:00
我不想使用 pandas 做解决方案..
您可以将时间戳增加 30 秒,然后截断到分钟。这假设您的列名为 'time'
import pyspark.sql.functions as f
df = df.withColumn('time_minute', f.date_trunc('minute', f.col('time') + f.expr('INTERVAL 30 SECONDS')))
+-------------------+-------------------+
| time| time_minute|
+-------------------+-------------------+
|2020-11-03 18:25:04|2020-11-03 18:25:00|
|2020-11-03 18:21:44|2020-11-03 18:22:00|
+-------------------+-------------------+