Невозможно заменить нулевые значения в Spark Dataframe на целочисленное значение - PullRequest
1 голос
/ 12 октября 2019

Employee Dataframe

В моем DataFrame Employees я хочу заменить нулевые значения в столбце комиссии на определенное значение (пусть будет 500). Я использую приведенную ниже команду для замены всех нулевых значений, но я не знаю, каким должно быть значение ключа для нулевого значения в Map:

    `employeeDF.na.replace("commission", Map("" -> 1000)).show()`

I am getting this error :

    <console>:32: error: type mismatch;
         found   : scala.collection.immutable.Map[String,Int]
         required: Map[Any,Any]
        Note: String <: Any, but trait Map is invariant in type A.
        You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10)
               employeeDF.na.replace("commission", Map("" -> 1000)).show()

What should I put in key part  of map ??

1 Ответ

1 голос
/ 14 октября 2019

Вы можете использовать любой из двух:

employeeDF.na.fill(1000, Seq("commission")).show()


import org.apache.spark.sql.functions._
employeeDF.withColumn("commission", when(col("commission").isNull, 1000) otherwise col("commission")).show()
...