spark SQL中IF和IFF有什么区别?

问题描述 投票:0回答:1

这两个函数的文档实际上是相同的。

参见 IFIFF

运行时(在 DBR 13.3 中,但这并不重要):

SELECT
    IF(1 = 1, 'a', 'b'),  IF(1 = 0, 'a', 'b'),
    IFF(1 = 1, 'a', 'b'), IFF(1 = 0, 'a', 'b')

其结果是:

enter image description here

这些操作的行为方式有什么不同吗?

apache-spark apache-spark-sql
1个回答
0
投票

我认为列名已经显示了执行计划的提示。

EXPLAIN
    SELECT
        IF(1 = 1, 'a', 'b'), IF(1 = 0, 'a', 'b'),
        IFF(1 = 1, 'a', 'b'), IFF(1 = 0, 'a', 'b')

结果:

== Physical Plan ==
*(1) Project [a AS (IF((1 = 1), a, b))#9622, b AS (IF((1 = 0), a, b))#9623, a AS (IF((1 = 1), a, b))#9624, b AS (IF((1 = 0), a, b))#9625]
+- *(1) Scan OneRowRelation[]

您可以看到

IF
IFF
指的是完全相同的操作:
IF

© www.soinside.com 2019 - 2024. All rights reserved.