在Spark数据框上将“小时”列舍入为整小时

时间:2019-05-16 14:41:45

标签: python pyspark pyspark-sql

如何使用带有小时和分钟的列向上或向下舍入Spark DataFrame,以便获得整个小时数而不是诸如“ 22:34”之类的时间?应该使用PySpark API来完成。

我已经尝试将时间转换为时间戳,然后使用unix_timestamp计算新时间,但是很遗憾,它不能正常工作。例如:“ 13:00-23:59”将导致空值。但对于“ 00:00-11:59”之间的值,它可以工作。值“ 03:34”结果为“ 4”。

s_df = s_df.withColumn("hour2",
hour((round(unix_timestamp("Hour3")/3600)*3600).cast("Timestamp")))

四舍五入值的结构应如下:

原文:“ 14:22” 四舍五入后的结果:“ 14:00” 原文:“ 00:34” 路由后的结果为:“ 01:00”

0 个答案:

没有答案