2016-10-11 8 views
1

データフレーム内のNULL値を各列に置き換えようとしていますが、各列には選択肢の特定の値が入力されます。カスタマイズ可能な順序の値をスパーク・スカラーに置き換えます

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) 

を次のように私が使用していたコードがある私がこのコードを実行することができませんしかし

+------+----+ 
    | V1| V2| 
    +------+----+ 
    | 10| 57| 
    |  9| 67| 
    | 14| 57| 
    |  9| 80| 
    +------+----+ 

に等しいna_repであるようなものであるべきです。任意の助けが大いに評価されるでしょう。

答えて

0

getOrElse()を使うことができます。

Ex。

YourValue.getOrElse("NewValue") 
+0

この変更を正確にどこに組み込むかを理解するのを助けてくれれば幸いです –

関連する問題