![](/img/trans.png)
[英]How to check in Python if cell value of pyspark dataframe column in UDF function is none or NaN for implementing forward fill?
[英]How do forward fill missing value imputation for a PySpark dataframe with single column?
我有一個單列的PySpark數據框。
| Rank
|----------
| 10
| 10
| null
| null
| 15
| null
| 20
| null
| null
| 15
| null
| 10
我想使用正向填充(例如pandas ffill()函數)來估算缺少的值。
期望的輸出
| Rank
|----------
| 10
| 10
| 10
| 10
| 15
| 15
| 20
| 20
| 20
| 15
| 15
| 10
免責聲明:我在stackoverflow中有一些解決方案,但是當您只有一個列作為輸入時,它們將無法工作。
滯后和超前僅用於獲得一個偏移量。 使用全局變量簡單創建udf
應該可以解決問題以下是簡單示例
var PRV_RANK = 0f
import spark.implicits._
val data = spark.sparkContext.parallelize(Seq(10f, 10f, Float.NaN, Float.NaN, 15f, Float.NaN, 20f, Float.NaN, Float.NaN, 15f, Float.NaN, 10f))
.toDF("rank")
val forwardFill = udf((rank: Float) =>
{
if (rank == null || rank.equals(Float.NaN)){
PRV_RANK
}
else {
PRV_RANK = rank
rank
}
})
data.withColumn("rankNew", forwardFill($"rank")).show()
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.