我在pyspark中有一个具有以下结构的数据框:
DataFrame[Urlaubdate: string, Vacationdate: date, Datensatz: string, Jobname: string]
现在,我想通过比较vacationdate和urlaubdate来过滤数据帧,不幸的是它们有不同的数据类型。我想过滤假日大于Urlaubdate的行。 你知道怎么做吗?
答案 0 :(得分:2)
我认为在这种情况下你必须使用如下的用户定义函数:
from pyspark.sql.functions import udf
from pyspark.sql.types import BooleanType
def compare(urlaubdate, vacationdate):
# do your comparison here (cast types if necessary)
# return True or False
# define a udf out of your function
compare_udf = udf(compare, BooleanType())
# filter your dataframe based on it
df_filtered = df.filter(compare_udf(df.urlaubdate, df.vacationdate))