comment obtenir un max(date) de l'ensemble de données regroupées par certains champs en utilisant pyspark?

J'ai les données dans le dataframe comme ci-dessous:

  datetime             | userId | memberId | value |    
2016-04-06 16:36:...   | 1234   | 111      | 1
2016-04-06 17:35:...   | 1234   | 222      | 5
2016-04-06 17:50:...   | 1234   | 111      | 8
2016-04-06 18:36:...   | 1234   | 222      | 9
2016-04-05 16:36:...   | 4567   | 111      | 1
2016-04-06 17:35:...   | 4567   | 222      | 5
2016-04-06 18:50:...   | 4567   | 111      | 8
2016-04-06 19:36:...   | 4567   | 222      | 9

J'ai besoin de trouver le max(datetime) groupby userid,memberid. Quand j'ai essayé comme ci-dessous:

df2 = df.groupBy('userId','memberId').max('datetime')

J'obtiens une erreur:

org.apache.spark.sql.AnalysisException: "datetime" is not a numeric
column. Aggregation function can only be applied on a numeric column.;

La sortie je l'ai désiré est comme suit:

userId | memberId | datetime
1234   |  111     | 2016-04-06 17:50:...
1234   |  222     | 2016-04-06 18:36:...
4567   |  111     | 2016-04-06 18:50:...
4567   |  222     | 2016-04-06 19:36:...

Quelqu'un peut m'aider comment je obtenir le max de date entre les données à l'aide de PySpark dataframes?

OriginalL'auteur cool716 | 2016-07-14