2016-04-30 2 views
-1

Ich habe folgende df:pyspark finden datum mit der höchsten amt.

Zeit loc amt
2012-07-20 01.00.00 A 3300
2012-01-04 17.29.00 B 300
2012-07 -20 01.00.00 A 200
2012-01-04 17.29.00 B 500
2012-01-04 17.29.00 C 333

ich möchte das Datum Ausgangs das hatte die höchste amt.

Ausgabe: 2012-07-20

Wie kann ich dies mit pyspark tun?

+1

Mögliches Duplikat [Finden maximale Zeilen pro Gruppe in Spark-Dataframe] (http://stackoverflow.com/questions/35218882/find-maximum-row-per-group-in-spark-dataframe) – zero323

Antwort

0

Wie wäre es, nur den Maximalwert zuerst zu sammeln und dann zu filtern?

max_amt = df.select(max(df.amt)).collect()[0][0] 
df.filter(df.amt == lit(max_amt)).select(to_date('time')).show() 
+------------+ 
|todate(time)| 
+------------+ 
| 2012-07-20| 
+------------+