Pyspark: preenchimento para frente com última observação para um DataFrame

Usando o Spark 1.5.1,

Eu tenho tentado encaminhar preenchimentovalores nulos com a última observação conhecida parauma coluna do meu DataFrame.

É possível começar com um valor nulo e, nesse caso, eu preencheria esse valor nulo com a primeira observação de known. No entanto, se isso também complica o código, este ponto pode ser ignorado.

Nissopostar, uma solução em Scala foi fornecida para um problema muito semelhante porzero323.

Mas não conheço o Scala e não consigo '' traduzi-lo '' no código da API do Pyspark. É possível fazer isso com o Pyspark?

Obrigado pela ajuda.

Abaixo, um exemplo simples de entrada de exemplo:

| 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

E a saída 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

questionAnswers(3)

yourAnswerToTheQuestion