我想将我的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发布于 2020-09-14 22:18:22
这可能是因为您正在将日期与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()https://stackoverflow.com/questions/63884173
复制相似问题