如何解决PySpark数据框:按日期删除行
我想将Spark数据框缩小为某个日期之后的日期,即2020-03-01。通过sql加载数据为我提供了数据列的字符串,因此在尝试通过数据比较删除行之前更改了它。 不幸的是,我的以下方法导致df为空。
query = "select id,date,volume from "+ INPUT_DB + "." + INPUT_TABLE
sdf_monthly = spark.sql(query)
sdf_monthly.count()
>>>113683937
sdf_monthly=sdf_monthly.withColumn("date",F.to_date(F.unix_timestamp(sdf_monthly["date"],"YYYY-MM-DD").cast("timestamp")))
sdf_monthly_new =sdf_monthly.filter(sdf_monthly["date"] >= F.unix_timestamp(F.lit('2020-03-01')).cast('timestamp'))
sdf_monthly_new.count()
>>>0
感谢您的帮助!
解决方法
可能是因为您正在将日期与Linux时间戳进行比较。试试:
sdf_monthly_new =sdf_monthly.filter(sdf_monthly["date"] >= F.to_date(F.unix_timestamp(F.lit('2020-03-01')).cast('timestamp')))
sdf_monthly_new.count()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。