Vij*_*gde 1 scala dataframe apache-spark
我正在使用Spark/Scala,我想在我的DataFrame中使用基于列类型的默认值填充空值.
ie String Columns - >"string",Numeric Columns - > 111,Boolean Columns - > False等.
目前DF.na.functions API提供na.fill之
fill(valueMap: Map[String, Any])
类的
df.na.fill(Map(
"A" -> "unknown",
"B" -> 1.0
))
Run Code Online (Sandbox Code Playgroud)
这需要知道列名称以及列的类型.
要么
fill(value: String, cols: Seq[String])
Run Code Online (Sandbox Code Playgroud)
这只是String/Double类型,甚至不是布尔值.
有一种聪明的方法吗?
看看dtypes: Array[(String, String)]
.您可以使用此方法的输出生成Map
for fill
,例如:
val typeMap = df.dtypes.map(column =>
column._2 match {
case "IntegerType" => (column._1 -> 0)
case "StringType" => (column._1 -> "")
case "DoubleType" => (column._1 -> 0.0)
}).toMap
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11645 次 |
最近记录: |