当我尝试使用空值填充DataFrame以替换其中的其他值时,我收到错误Caused by: scala.MatchError: Null (of class scala.reflect.internal.Types$ClassNoArgsTypeRef)
。如何使用Scala Spark 2.1执行此操作?
答案 0 :(得分:4)
您可以使用isin
和when
。必需的进口:
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|
+---+----+