我怎样才能在interval '12' month中实现类似于date_parse(due_date, '%Y%m%d')- interval '12' month中的SQL的等价操作呢?(我的电火花代码在下面)
(df1.join(df2, ['a', 'b'], how='left')
.filter(F.col('date1') < F.col('date2'))
.filter(F.col('date1') > F.col('date2') - interval '12' month)
.groupby(['a','b']).count()
.cache())在上面的代码中,date1和date2都是强制转换的to_date。
发布于 2019-08-23 20:53:36
试试这个:
(df1.join(df2, ['a', 'b'], how='left')
.filter(F.col('date1') < F.col('date2'))
.filter(F.months_between(F.col('date2'), F.col('date1')) < 12 )
.groupby(['a','b']).count()
.cache())发布于 2019-08-23 10:29:36
您可以执行以下操作:
from dateutil.relativedelta import *
(df1.join(df2, ['a', 'b'], how='left')
.filter(F.col('date1') < F.col('date2'))
.filter(F.col('date1') > F.col('date2') + relativedelta(months=-12))
.groupby(['a','b']).count()
.cache())https://stackoverflow.com/questions/57624269
复制相似问题