gpt4 book ai didi

apache-spark - 如何使用 array_remove Spark SQL 内置函数删除空值

转载 作者:行者123 更新时间:2023-12-04 04:17:02 32 4
gpt4 key购买 nike

Spark 2.4 引入了新的有用的涉及数组的 Spark SQL 函数,但是当我发现以下结果时我有点困惑:select array_remove(array(1, 2, 3, null, 3), null)null而不是 [1, 2, 3, 3].
这是预期的行为吗?是否可以使用 array_remove 删除空值? ?

作为旁注,目前我使用的替代方案是数据块中的高阶函数:
select filter(array(1, 2, 3, null, 3), x -> x is not null)

最佳答案

回答你的第一个问题,这是预期的行为吗? , 是的。因为官方笔记本( https://docs.databricks.com/_static/notebooks/apache-spark-2.4-functions.html )指出“从给定数组中删除所有等于给定元素的元素”。和NULL对应于未定义的值,结果也未定义。

所以,我想 NULL s 不在此功能的范围内。

如果你找到了克服这个问题的方法,你也可以使用 spark.sql("""SELECT array_except(array(1, 2, 3, 3, null, 3, 3,3, 4, 5), array(null))""").show()但缺点是结果将没有重复。

关于apache-spark - 如何使用 array_remove Spark SQL 内置函数删除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54159964/

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