首页 >后端开发 >Python教程 >如何在 Apache Spark 中复制 IF then ELSE 语句?

如何在 Apache Spark 中复制 IF then ELSE 语句?

Susan Sarandon
Susan Sarandon原创
2024-11-16 06:34:031106浏览

How to Replicate an IF Then ELSE Statement in Apache Spark?

IF Then ELSE 的 Spark 等效项

在 Spark 中,您可以使用when() 函数将条件表达式应用于列。此函数允许您为不同的条件指定 true 和 false 值。

代码错误和解决方案

您的代码抛出错误,因为您错误地使用了 when()功能。 when() 的正确语法是:

when(condition, value).when(...)

when(condition, value).otherwise(...)

在您的代码中,您向when() 函数提供了三个参数,这是不正确的。要解决此问题,您需要按如下方式重写代码:

iris_spark_df = iris_spark.withColumn(
    "Class", 
    F.when(iris_spark.iris_class == 'Iris-setosa', 0)
    .when(iris_spark.iris_class == 'Iris-versicolor', 1)
    .otherwise(2)
)

等效 SQL 表达式

Spark when() 函数相当于中的 CASE 语句SQL:

CASE
    WHEN (iris_class = 'Iris-setosa') THEN 0
    WHEN (iris_class = 'Iris-versicolor') THEN 1
    ELSE 2
END

以上是如何在 Apache Spark 中复制 IF then ELSE 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn