Pyspark: relleno hacia adelante con la última observación para un DataFrame

Usando Spark 1.5.1,

He estado tratando de reenviar el rellenovalores nulos con la última observación conocida parauna columna de mi DataFrame.

Es posible comenzar con un valor nulo y, en este caso, rellenaría este valor nulo con la primera observación conocida. Sin embargo, si eso también complica el código, este punto puede omitirse.

En estoenviar, se proporcionó una solución en Scala para un problema muy similar porcero323.

Pero no conozco a Scala y no logro '' traducirlo '' en el código API de Pyspark. ¿Es posible hacerlo con Pyspark?

Gracias por tu ayuda.

A continuación, un ejemplo de entrada de ejemplo simple:

| cookie_ID     | Time       | User_ID   
| ------------- | --------   |------------- 
| 1             | 2015-12-01 | null 
| 1             | 2015-12-02 | U1
| 1             | 2015-12-03 | U1
| 1             | 2015-12-04 | null   
| 1             | 2015-12-05 | null     
| 1             | 2015-12-06 | U2
| 1             | 2015-12-,07 | null
| 1             | 2015-12-08 | U1
| 1             | 2015-12-09 | null      
| 2             | 2015-12-03 | null     
| 2             | 2015-12-04 | U3
| 2             | 2015-12-05 | null   
| 2             | 2015-12-06 | U4

Y la salida esperada:

| cookie_ID     | Time       | User_ID   
| ------------- | --------   |------------- 
| 1             | 2015-12-01 | U1
| 1             | 2015-12-02 | U1
| 1             | 2015-12-03 | U1
| 1             | 2015-12-04 | U1
| 1             | 2015-12-05 | U1
| 1             | 2015-12-06 | U2
| 1             | 2015-12-07 | U2
| 1             | 2015-12-08 | U1
| 1             | 2015-12-09 | U1
| 2             | 2015-12-03 | U3
| 2             | 2015-12-04 | U3
| 2             | 2015-12-05 | U3
| 2             | 2015-12-06 | U4

Respuestas a la pregunta(3)

Su respuesta a la pregunta