我有一个Dataframe,其中一些列的类型为String,并且包含NULL作为String值(而不是实际的NULL)。我想把它归咎于零。显然df.na.fill(0)
不起作用。我怎么能用零来判断它们呢?
答案 0 :(得分:1)
您可以使用replace()
中的DataFrameNaFunctions
,这些可以通过前缀.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)): _*)
然而,考虑到它与上述相同,这将是多余的,代价是代码行数超出必要程度。