Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark when函数如何处理多个匹配案例?_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark when函数如何处理多个匹配案例?

Apache spark when函数如何处理多个匹配案例?,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,函数始终返回第一个匹配项时是否触发? 比如说, val df = spark.sql("SELECT 1 as a") df.withColumn("a",when($"a">0,1).when($"a">0.5,2)).show() 它是否总是一致地返回第一个“when”匹配 或者更好的做法是这样做: df.withColumn("a",when($"a">0,1).otherwise(when($"a">0.5,2)).show() 使用哪种做法更好?文档(尤其

函数始终返回第一个匹配项时是否触发? 比如说,

val df = spark.sql("SELECT 1 as a")

df.withColumn("a",when($"a">0,1).when($"a">0.5,2)).show()
它是否总是一致地返回第一个“when”匹配

或者更好的做法是这样做:

df.withColumn("a",when($"a">0,1).otherwise(when($"a">0.5,2)).show()
使用哪种做法更好?

文档(尤其是示例)建议进行第一次匹配:

计算条件列表并返回多个可能的条件之一 结果表达式。如果末尾未定义“否则”,则为null 为不匹配的条件返回。 //示例:将性别字符串列编码为整数

//斯卡拉:
人物。选择( 当(人(“性别”)=“男性”,0) .当(人(“性别”)=“女性”,1) 。否则(2))

编辑:

尽管此示例使用了不相交的情况,但第一次匹配是标准SQL,请参见和

文档(尤其是示例)建议进行第一次匹配:

计算条件列表并返回多个可能的条件之一 结果表达式。如果末尾未定义“否则”,则为null 为不匹配的条件返回。 //示例:将性别字符串列编码为整数

//斯卡拉:
人物。选择( 当(人(“性别”)=“男性”,0) .当(人(“性别”)=“女性”,1) 。否则(2))

编辑:


虽然这个例子使用了不相交的情况,但是第一个匹配是标准的SQL,参见和

我看到了文档,他们的例子中有两个条件不能同时匹配,如果我有多个条件匹配,他们不会说第一个条件被匹配。真的!在(标准)SQL中,它应该是第一个匹配项。但是如果我在某处看到这些文档,那就太好了。我看到了这些文档,它们的示例中有两个条件不能同时匹配,如果我有多个条件匹配,它们不会说第一个条件被采用。真的!在(标准)SQL中,它应该是第一个匹配项。但如果能在某个地方看到这一点就好了