在可自定义的订单中替换值spark scala

时间:2016-10-11 21:09:10

标签: scala loops apache-spark spark-dataframe

我正在尝试将数据框中的空值替换为每个列中的值,我希望每个列都填充我选择的特定值。我使用的代码如下

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|
    +------+----+

但是我无法运行此代码。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您可以使用getOrElse()。

实施例。

YourValue.getOrElse("NewValue")