Gibt es eine empfohlene Methode, die folgende Art von Transformation zu tun:
Input:Wie berechnet man Start- und Endzeiten von Benutzersitzungen?
userID timestamp action
u1 100 edit1
u1 122 edit2
u1 135 edit3
u2 143 edit4
u2 158 edit5
u1 212 edit6
u1 241 edit7
Ausgang:
userID startTime endTime actions
u1 100 135 [edit1, edit2, edit3]
u2 143 158 [edit4, edit5]
u1 212 241 [edit6, edit7]
Gruppierung von Benutzer-ID Ergebnissen in den Sitzungsinformationen verloren gehen. Gleiches gilt für die Verwendung von Window-Funktionen.
EDIT für Klarheit: In diesem Fall, beachten Sie, dass Benutzer u1 erscheint 2 mal in der Ergebnismenge. Die Aktionen des Benutzers u2 unterbrechen die Aktionen von u1 in zwei Sitzungen.
Dank @jaceklaskowski. Die andere Frage half. –
Eine andere ähnliche Frage beantwortet: https://stackoverflow.com/questions/44020343/spark-dataframe-access-of-previous-calculated-row –