在 PySpark 中减少 DateTime 对象
Reducing a DateTime Object in PySpark
我有两个DF。一个日期时间为 DATE=datetime.date(2014, 2, 1)
,另一个日期时间为 pickup_time=datetime.datetime(2014, 2, 9, 14, 51)
。问题是我无法加入这两个 DataFrame,因为其中一个具有 hour/minutes/seconds 因此 PySpark 无法加入它们。使用额外时间格式重新格式化数据帧中的日期时间的正确方法是正确的方法,还是有一种方法可以加入忽略 hours/minutes/seconds 的数据帧。我该怎么做?
您可以在连接期间转换类型,例如:
>>> df1.first();
Row(date=datetime.date(2016, 11, 11))
>>> df2.first();
Row(date=datetime.datetime(2016, 11, 11, 21, 8))
>>> df1.join(df2, df1.date == df2.date.cast('date')).first()
Row(date=datetime.date(2016, 11, 11), date=datetime.datetime(2016, 11, 11, 21, 8))
我有两个DF。一个日期时间为 DATE=datetime.date(2014, 2, 1)
,另一个日期时间为 pickup_time=datetime.datetime(2014, 2, 9, 14, 51)
。问题是我无法加入这两个 DataFrame,因为其中一个具有 hour/minutes/seconds 因此 PySpark 无法加入它们。使用额外时间格式重新格式化数据帧中的日期时间的正确方法是正确的方法,还是有一种方法可以加入忽略 hours/minutes/seconds 的数据帧。我该怎么做?
您可以在连接期间转换类型,例如:
>>> df1.first();
Row(date=datetime.date(2016, 11, 11))
>>> df2.first();
Row(date=datetime.datetime(2016, 11, 11, 21, 8))
>>> df1.join(df2, df1.date == df2.date.cast('date')).first()
Row(date=datetime.date(2016, 11, 11), date=datetime.datetime(2016, 11, 11, 21, 8))