我正在尝试将数据框中的空值替换为每个列中的值,我希望每个列都填充我选择的特定值。我使用的代码如下
val data = sqlContext.createDataFrame(Seq(
(10,null),
(null,67),
(14,null),
(null,80)
)).toDF("V1","V2")
import org.apache.spark.sql.DataFrame
def valreplace(data:DataFrame,valueList:list,columnList:list):DataFrame = {
for (i <- columnList){
val val = valueList(columnList.indexOf(i))
val replaced = data.na.fill(val,Seq(column))
val data = replaced
}
return(data)
}
valueList = List(9,57)
columnList = List("V1","V2")
val na_rep = valreplace(data,valueList,columnList)
应该是na_rep等于
+------+----+
| V1| V2|
+------+----+
| 10| 57|
| 9| 67|
| 14| 57|
| 9| 80|
+------+----+
但是我无法运行此代码。任何帮助将不胜感激
答案 0 :(得分:0)
您可以使用getOrElse()。
实施例。
YourValue.getOrElse("NewValue")