如何在PySpark的数据框中使用两列过滤日期(两个日期之间)

时间:2018-07-13 08:55:27

标签: dataframe pyspark

我想在两个日期列之间过滤df,例如:

+------+----------+----------+
|  code|     Date1|     Date2|
+------+----------+----------+
|    10|2018-06-01|2018-06-05|
|    15|2018-06-01|2018-06-15|
|    16|2018-06-01|2018-06-20|
|+------+----------+---------+

当我尝试这个时:

test_df = df.select('code','revenue').where(F.col('Date1').between('Date1','Date2'))

我有一个空结果。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

应该是-

test_df = df.select('code','revenue').where(F.col('Date1').between(F.col('Date1'),F.col('Date2')))

否则,它将“ Date1”视为一个值(即所有行中的常量),并且不会将其与列值进行比较。顺便说一句-这将永远是真的。