DataFrame过滤日期

时间:2019-10-04 12:52:10

标签: scala apache-spark

我有一个类型为date的Scala DataFrame(df)

XMLElement

我正尝试对其进行过滤,以仅获取dt大于或等于String格式日期的记录。

下面的代码似乎可以正常工作,但这是“正确”的方式吗?还是应该将字符串显式转换为Date?

dt:date
column1:string

2 个答案:

答案 0 :(得分:3)

将字符串转换为dataframe列的数据格式会很好。

因此,当用户发送错误的输入时,它将预先进行验证。而不是失败的操作。

答案 1 :(得分:0)

@Achyuth正确建议始终转换为数据框的日期列。

df.where($"dt" >= "2011-01-01")

给出以下查询计划

+- *(1) Filter (isnotnull(dt#) && (cast(dt#as string) >= 2011-01-01))

.where($"dt" >= lit(my_date_string).cast("timestamp"))

 Filter (isnotnull(dt#) && (cast(dt#as timestamp) >= 1514764800000000))