Я пытаюсь заполнить пропущенные значения в столбце. Столбец профиля в 1-й строке или в любой из следующих строк (которые расположены в зависимости от даты на основе даты) в группе / разделе будет иметь значение, которое необходимо заполнить в следующих ячейках в столбце профиля.
Я пытался запустить его с помощью оконной функции, но не смог применить UDF к оконной функции.
valuesA = [('1',"", "20190108"),('1',"", "20190107"),('1',"abcd", "20190106"),('1',"", "20190105"),('1',"", "20190104"),('2',"wxyz", "20190103"),('2',"", "20190102"),('2',"", "20190101")]
TableA = spark.createDataFrame(valuesA,['vid','profile', 'date'])
valuesB = [('1',"null", "20190108"),('1',"null", "20190107"),('1',"abcd", "20190106"),('1',"abcd", "20190105"),('1',"abcd", "20190104"),('2',"wxyz", "20190103"),('2', "wxyz", "20190102"),('2', "wxyz", "20190101")]
TableB = spark.createDataFrame(valuesB,['vid','profile', 'date'])
TableA.show()
TableB.show()
Table A: This is what I have.
+---+-------+--------+
|vid|profile| date|
+---+-------+--------+
| 1| |20190108|
| 1| |20190107|
| 1| abcd|20190106|
| 1| |20190105|
| 1| |20190104|
| 2| wxyz|20190103|
| 2| |20190102|
| 2| |20190101|
+---+-------+--------+
Table B: What I am expecting.
+---+-------+--------+
|vid|profile| date|
+---+-------+--------+
| 1| null|20190108|
| 1| null|20190107|
| 1| abcd|20190106|
| 1| abcd|20190105|
| 1| abcd|20190104|
| 2| wxyz|20190103|
| 2| wxyz|20190102|
| 2| wxyz|20190101|
+---+-------+--------+