gpt4 book ai didi

scala - 在 Spark 数据框中减去两列空值

转载 作者:行者123 更新时间:2023-12-02 06:13:55 24 4
gpt4 key购买 nike

我是 Spark 新手,我有数据框 df:

+----------+------------+-----------+
| Column1 | Column2 | Sub |
+----------+------------+-----------+
| 1 | 2 | 1 |
+----------+------------+-----------+
| 4 | null | null |
+----------+------------+-----------+
| 5 | null | null |
+----------+------------+-----------+
| 6 | 8 | 2 |
+----------+------------+-----------+

减去两列时,一列为空,因此结果列也为空。
df.withColumn("Sub", col(A)-col(B))

预期输出应该是:
+----------+------------+-----------+
| Column1 | Column2 | Sub |
+----------+------------+-----------+
| 1 | 2 | 1 |
+----------+------------+-----------+
| 4 | null | 4 |
+----------+------------+-----------+
| 5 | null | 5 |
+----------+------------+-----------+
| 6 | 8 | 2 |
+----------+------------+-----------+

我不想用 0 替换 column2,它应该只为空。
有人可以帮我吗?

最佳答案

您可以使用 when作为

import org.apache.spark.sql.functions._
df.withColumn("Sub", when(col("Column1").isNull, lit(0)).otherwise(col("Column1")) - when(col("Column2").isNull, lit(0)).otherwise(col("Column2")))

你应该有最终结果
+-------+-------+----+
|Column1|Column2| Sub|
+-------+-------+----+
| 1| 2|-1.0|
| 4| null| 4.0|
| 5| null| 5.0|
| 6| 8|-2.0|
+-------+-------+----+

关于scala - 在 Spark 数据框中减去两列空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46334705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com