j'ai une trame de données Spark qui ressemble à ceci (horodatage simplifiant et les valeurs de colonne id pour plus de clarté):Suppression de lignes redondantes dans une trame de données Spark avec des données de séries chronologiques
| Timestamp | id | status |
--------------------------------
| 1 | 1 | pending |
| 2 | 2 | pending |
| 3 | 1 | in-progress |
| 4 | 1 | in-progress |
| 5 | 3 | in-progress |
| 6 | 1 | pending |
| 7 | 4 | closed |
| 8 | 1 | pending |
| 9 | 1 | in-progress |
Il est une série chronologique des événements d'état . Ce que je voudrais finir est seulement les lignes représentant un changement d'état. En ce sens, le problème peut être considéré comme un problème de suppression des lignes redondantes - par ex. les entrées aux heures 4 et 8 - toutes deux pour id = 1 - doivent être supprimées car elles ne représentent pas un changement de statut pour un identifiant donné.
Pour l'ensemble au-dessus de lignes, cela donnerait (ordre étant sans importance):
| Timestamp | id | status |
--------------------------------
| 1 | 1 | pending |
| 2 | 2 | pending |
| 3 | 1 | in-progress |
| 5 | 3 | in-progress |
| 6 | 1 | pending |
| 7 | 4 | closed |
| 9 | 1 | in-progress |
plan original était de partitionner par id et de l'état, commande par horodatage, et choisissez la première ligne pour chaque partition - cependant cela donnerait
| Timestamp | id | status |
--------------------------------
| 1 | 1 | pending |
| 2 | 2 | pending |
| 3 | 1 | in-progress |
| 5 | 3 | in-progress |
| 7 | 4 | closed |
c'est-à-dire qu'il perd des changements d'état répétés.
N'importe quel pointeur apprécié, je suis nouveau dans les blocs de données et peut manquer un tour ou deux.
Nice, merci - lag FTW! –