用空值填充 scala 列



当我尝试用空值填充数据帧以替换其中的其他值时,我收到错误Caused by: scala.MatchError: Null (of class scala.reflect.internal.Types$ClassNoArgsTypeRef)。如何使用 Scala Spark 2.1 执行此操作?

您可以使用

isinwhen。所需导入:

import org.apache.spark.sql.functions.when

示例数据:

val toReplace = Seq("foo", "bar")
val df = Seq((1, "Jane"), (2, "foo"), (3, "John"), (4, "bar")).toDF("id", "name")

查询:

df.withColumn("name", when(!$"name".isin(toReplace: _*), $"name")).

结果是:

+---+----+
| id|name|
+---+----+
|  1|Jane|
|  2|null|
|  3|John|
|  4|null|
+---+----+

最新更新