使用空值填充scala列

时间:2017-03-17 00:51:31

标签: scala apache-spark dataframe

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

1 个答案:

答案 0 :(得分:4)

您可以使用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|
+---+----+