首页 > 解决方案 > PySpark 将时间(仅)与时间变量进行比较

问题描述

好吧,我认为这很容易,但我在比较时间值时遇到了麻烦。

例如

有一个带时间的 col(仅)和一个字符串变量,例如after_lunch = '13:00:00'我正在尝试创建is_late col,如下所示:

+--------------------+
|time_only| is_late  |
+--------------------+
| 12:46:40|      No  |
| 13:05:47|      Yes |

任何帮助,将不胜感激。

标签: apache-sparkpysparkapache-spark-sql

解决方案


您可以先将时间转换为时间戳类型:

import pyspark.sql.functions as F

df2 = df.withColumn(
    'is_late', 
    F.when(
        F.to_timestamp('time_only', 'H:mm:ss') > F.to_timestamp(F.lit('13:00:00'), 'H:mm:ss'), 
        'yes'
    ).otherwise('no')
)

推荐阅读