Ich habe einen Datenrahmen wie untenPyspark Dataframe-Gruppe durch Filterung
cust_id req req_met
------- --- -------
1 r1 1
1 r2 0
1 r2 1
2 r1 1
3 r1 1
3 r2 1
4 r1 0
5 r1 1
5 r2 0
5 r1 1
Ich habe bei den Kunden zu sehen, wie viele Anforderungen sie haben, und sehen, ob sie mindestens einmal getroffen hat. Es kann mehrere Datensätze mit demselben Kunden und derselben Anforderung geben, eine mit erfüllt und nicht erfüllt. Im obigen Fall sollte mein Ausgang
seincust_id
-------
1
2
3
Was ich getan habe, ist
say initial dataframe is df
df1 = df.groupby('cust_id').countdistinct('req').alias('num_of_req').sum('req_met').alias('sum_req_met')
df2 = df1.filter(df1.num_of_req == df1.sum_req_met)
Aber in einigen Fällen ist es nicht korrekte Ergebnisse
bekommen Wie dies geschehen kann?
Dank für die Lösung. Ich sah eher wie ein Datenrahmen aus –