Gewusst wie: filtern von Daten mithilfe von Fenster-Funktionen in der Funke

Habe ich folgende Daten :

rowid uid time code
   1  1      5    a
   2  1      6    b
   3  1      7    c
   4  2      8    a
   5  2      9    c
   6  2      9    c
   7  2     10    c
   8  2     11    a
   9  2     12    c

Nun wollte ich die Daten filtern, die in einer Weise, die ich kann entfernen Sie die Zeilen 6 und 7 für einen bestimmten uid ich will einfach eine Zeile mit dem Wert 'c' im code

Also die zu erwartenden Daten sollten sein :

rowid uid time code
   1  1      5    a
   2  1      6    b
   3  1      7    c
   4  2      8    a
   5  2      9    c
   8  2     11    a
   9  2     12    c

Ich bin mit der Fenster-Funktion, so etwas wie dieses :

val window = Window.partitionBy("uid").orderBy("time")
val change = ((lag("code", 1).over(window) <=> "c")).cast("int")

Dies würde uns dabei helfen, jede Zeile mit dem code 'c'. Verlängere ich diese heraus zu filtern und Zeilen, um die erwarteten Daten

  • Können Sie klären Ihre Anforderung? Ist es der Fall, dass für jede UID, die Sie behalten möchten nur eine Zeile für jeden code, oder ist nur für code "c", das Sie brauchen, um dies zu tun?
InformationsquelleAutor hbabbar | 2016-08-10
Schreibe einen Kommentar