Spark SQL中coalesce()函数

发布时间:2023年12月18日

在Spark SQL中,`coalesce()`函数用于从给定列中选择非空值。它接受一个或多个列作为参数,并返回第一个非空值。在数据清洗和预处理过程中,

`coalesce()`函数非常有用,特别是在处理缺失值或空值时

以下是使用`coalesce()`函数进行指定列填充数据的示例:

假设我们有一个名为`employees`的DataFrame,其中包含以下列:`name`, `age`, `address`和`salary`。某些行中的`age`列可能包含空值(`null`)。

val employees = spark.createDataFrame(Seq(
? ("John", 30, "New York", 5000),
? ("Mary", null, "London", 6000),
? ("Bob", 40, "Paris", 7000),
? ("Alice", null, "Tokyo", 8000)
)).toDF("name", "age", "address", "salary")


我们可以使用`coalesce()`函数来填充`age`列中的空值。在这个例子中,我们将使用`coalesce(age, 0)`来将空值替换为0。

val filledEmployees = employees.withColumn("age", coalesce($"age", lit(0)))
filledEmployees.show()


输出结果:


```diff
+------+------+---------+------+
| ?name| ? age| ? ?address|salary|
+------+------+---------+------+
| ?John| ? 30| New York| ? 5000|
| ?Mary|null | ? ? London| ? 6000|
| ? Bob| ? 40| ? ?Paris? ? | ? 7000|
|Alice|null? ?| ? ?Tokyo? ?|? ?8000|
+------+------+---------+------+
```
在填充后的DataFrame中,空值被替换为0。请注意,`coalesce()`函数可以接受多个参数,因此您可以使用它来从多个列中选择非空值。

文章来源:https://blog.csdn.net/m0_69097184/article/details/134954339
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。