gpt4 book ai didi

apache-spark - 查找包含任何空值的列的有效方法

转载 作者:行者123 更新时间:2023-12-05 03:42:36 26 4
gpt4 key购买 nike

我想返回包含至少 1 个空值的所有列的列表。我在 StackOverflow 上看到的所有其他类似问题都在过滤值为空的列,但这绝对不是最佳选择,因为它必须找到所有空值,但我只想找到一个空值。

我可以过滤值为 null 的列,然后如果此结果的计数大于 1,则我知道该列包含空值。然而,正如我所说,这是次优的,因为它首先找到所有空值。

有什么办法吗?

此外,有没有什么方法可以在不遍历所有列的情况下做到这一点?

最佳答案

Spark 的 SQL 函数 any可以检查列的任何值是否满足条件。

from pyspark.sql import functions as F

data = [[1,2,3],[None, 5, 6], [7, None, 9]]
df = spark.createDataFrame(data, schema=["col1", "col2", "col3"])

cols = [f"any({col} is null) as {col}_contains_null" for col in df.columns]
df.selectExpr(cols).show()

输出:

+------------------+------------------+------------------+
|col1_contains_null|col2_contains_null|col3_contains_null|
+------------------+------------------+------------------+
| true| true| false|
+------------------+------------------+------------------+

关于apache-spark - 查找包含任何空值的列的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67211766/

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