Pyspark通过日期和字符串数据类型之间的比较来过滤数据帧

时间:2015-10-02 17:10:31

标签: python dataframe pyspark spark-dataframe

我在pyspark中有一个具有以下结构的数据框:

DataFrame[Urlaubdate: string, Vacationdate: date, Datensatz: string, Jobname: string]

现在,我想通过比较vacationdate和urlaubdate来过滤数据帧,不幸的是它们有不同的数据类型。我想过滤假日大于Urlaubdate的行。 你知道怎么做吗?

1 个答案:

答案 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))