我有一个类型为date的Scala DataFrame(df)
XMLElement
我正尝试对其进行过滤,以仅获取dt大于或等于String格式日期的记录。
下面的代码似乎可以正常工作,但这是“正确”的方式吗?还是应该将字符串显式转换为Date?
dt:date
column1:string
答案 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))