gpt4 book ai didi

scala - 在 DataFrame.withColumn 中,如何使用列的值作为第二个参数的条件?

转载 作者:行者123 更新时间:2023-12-05 08:42:11 25 4
gpt4 key购买 nike

如果我有一个名为 df 的 DataFrame,它看起来像:

+---+---+
| a1+ a2|
+---+---+
|foo|bar|
|N/A|baz|
+---+---+

我期望:

val df2 = df.withColumn("a1", when($"a1" == "N/A", $"a2))

df2 看起来像:

+---+---+
| a1+ a2|
+---+---+
|foo|bar|
|baz|baz|
+---+---+

但我得到:

error: type mismatch;
found : Boolean
required: org.apache.spark.sql.Column

所以听起来我需要一个 Column 方法来在 DataFrame 的 withColumn 方法中产生它的值。

任何这样的事情,或其他方法来有条件地用当前列的值填充 withColumn 的替换参数?

最佳答案

你需要 === 而不是 ==:

val df2 = df.withColumn("a1", when($"a1" === "N/A", $"a2").otherwise($"a1"))
// df2: org.apache.spark.sql.DataFrame = [a1: string, a2: string]

df2.show
+---+---+
| a1| a2|
+---+---+
|foo|bar|
|baz|baz|
+---+---+

关于scala - 在 DataFrame.withColumn 中,如何使用列的值作为第二个参数的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810377/

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