Cómo filtrar datos usando funciones de ventana en spark
Tengo los siguientes datos:
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
Ahora quería filtrar los datos de tal manera que pueda eliminar las filas 6 y 7, para un uid en particular, quiero mantener solo una fila con el valor 'c' en el código
Entonces los datos esperados deberían ser:
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
Estoy usando la función de ventana algo como esto:
val window = Window.partitionBy("uid").orderBy("time")
val change = ((lag("code", 1).over(window) <=> "c")).cast("int")
Esto nos ayudaría a identificar cada fila con un código 'c'. ¿Puedo extender esto para filtrar filas para obtener los datos esperados?