我有一个数据帧
date, string, string
我想在某段时间之前选择日期 . 我试过以下没有运气
data.filter(data("date") < new java.sql.Date(format.parse("2015-03-14").getTime))
我收到一条错误说明以下内容
org.apache.spark.sql.AnalysisException: resolved attribute(s) date#75 missing from date#72,uid#73,iid#74 in operator !Filter (date#75 < 16508);
据我所知,查询不正确 . 任何人都可以告诉我应该格式化查询的方式?
我检查了数据框中的所有企业都有值 - 他们这样做了 .
2 回答
自 spark 1.5 以来,以下解决方案适用:
低于:
大于:
为了相等,您可以使用
equalTo
或===
:如果
DataFrame
日期列的类型为StringType
,则可以使用to_date
函数进行转换:您还可以使用
year
函数根据年份进行过滤:在PySpark(python)中,其中一个选项是使列为unix_timestamp格式 . 我们可以将字符串转换为unix_timestamp并指定格式,如下所示 . 注意我们需要导入unix_timestamp和lit函数
现在我们可以应用过滤器了