У меня есть такой фрейм данных:
+-------+-------------------+
|id |scandatetime |
+-------+-------------------+
|1234567|2020-03-13 10:56:18|
|1234567|2020-03-12 17:09:48|
|1234567|2020-03-12 15:42:25|
|1234567|2020-03-09 16:30:22|
|1234567|2020-03-12 17:09:48|
|1234567|2020-03-09 16:30:22|
|1234567|2020-03-12 15:42:25|
+-------+-------------------+
И я хотел бы рассчитать минимальную и максимальную метки времени для этого идентификатора. Для этого я использовал следующий код:
dfScans = datasource1.toDF()
dfScans = dfScans.withColumn('scandatetime',f.unix_timestamp(f.col('scandatetime'), "yyyy-MM-dd hh:mm:ss").cast("timestamp"))
dfDateAgg = dfScans.groupBy("id").agg(f.min('scandatetime').alias('FirstScanDate'),
f.max('scandatetime').alias('LastScanDate'))
Но я получаю следующее возвращение:
+-------+-------------------+-------------------+
|id |FirstScanDate |LastScanDate |
+-------+-------------------+-------------------+
|1234567|2020-03-13 10:56:18|2020-03-13 10:56:18|
+-------+-------------------+-------------------+
Почему функция min не возвращает правильное значение?