如何使用带有小时和分钟的列向上或向下舍入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”