gpt4 book ai didi

apache-spark - Apache spark 案例在不同的列上有多个 when 子句

转载 作者:可可西里 更新时间:2023-11-01 14:45:17 24 4
gpt4 key购买 nike

给定以下结构:

val df = Seq("Color", "Shape", "Range","Size").map(Tuple1.apply).toDF("color")

val df1 = df.withColumn("Success", when($"color"<=> "white", "Diamond").otherwise(0))

我想在上面 where size > 10 和 Shape 列上再写一个 WHEN 条件值是 Rhombus 那么“Diamond”值应该插入到 else 0 列。我试过如下但它失败了

val df1 = df.withColumn("Success", when($"color" <=> "white", "Diamond").otherwise(0)).when($"size">10)

请建议我只使用 Scala 的数据框选项。带有 sqlContext 的 Spark-SQL 对我没有帮助。

谢谢!

最佳答案

您可以链接 when,类似于 https://spark.apache.org/docs/latest/api/java/org/apache/spark/sql/Column.html#when-org.apache.spark.sql.Column-java.lang.Object- 中的示例从 (1.4.0) 开始可用

// Scala:
people.select(when(people("gender") === "male", 0)
.when(people("gender") === "female", 1)
.otherwise(2))

你的例子:

val df1 = df.withColumn("Success",
when($"color" <=> "white", "Diamond")
.when($"size" > 10 && $"shape" === "Rhombus", "Diamond")
.otherwise(0))

关于apache-spark - Apache spark 案例在不同的列上有多个 when 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349830/

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