Spark2.1 DataFrameNaFunctions无fill方法解决

问题:

为了将DataFrame中多列null值转换为0,采用na.fill方式,代码如下:

_df.na.fill(0, Seq("col1", "col2", "col3"))

在Spark2.1中运行该代码,发生报错Spark version 2.1.0 returns following error,报错信息如下:

java.lang.NoSuchMethodError: org.apache.spark.sql.DataFrameNaFunctions.fill(JLscala/collection/Seq;)Lorg/apache/spark/sql/Dataset

解决:

spark2.1 版本暂时不支持 na.fill 写法,因此采用如下方式解决:

Seq("col1", "col2", "col3").foreach(col =>
            _df = _df.withColumn(col, when(_df(col).isNull, 0).otherwise(_df(col)))
        )

 

你可能感兴趣的:(Spark)