繁体   English   中英

如何在Spark / Scala中将NULL值归零

[英]How to impute NULL values to zero in Spark/Scala

我有一个数据框,其中某些列的类型为String,并且包含NULL作为字符串值(而不是实际的NULL)。 我想用零来估算它们。 显然df.na.fill(0)不起作用。 我怎样才能将它们归零?

您可以使用DataFrameNaFunctions replace() ,可以通过前缀.na进行访问:

val df1 = df.na.replace("*", Map("NULL" -> "0"))

您也可以创建自己的udf来复制此行为:

import org.apache.spark.sql.functions.col

val nullReplacer = udf((x: String) => {
  if (x == "NULL") "0"
  else x
})

val df1 = df.select(df.columns.map(c => nullReplacer(col(c)).alias(c)): _*)

但是,如果这样做与上述相同,那将是多余的,但代价是需要多行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM