Apache spark 查找包含任何空值的列的有效方法
我想返回至少包含1个空值的所有列的列表。我在StackOverflow上看到的所有其他类似问题都是过滤值为null的列,但这肯定是次优的,因为它必须找到所有null值,但我只想找到一个null值 我可以筛选值为null的列,然后如果此结果的计数大于1,则我知道该列包含null值。然而,正如我所说的,这是次优的,因为它首先找到所有空值 有没有办法做到这一点 此外,有没有办法在不遍历所有列的情况下执行此操作?Spark的SQL函数可以检查列的任何值是否满足条件Apache spark 查找包含任何空值的列的有效方法,apache-spark,pyspark,Apache Spark,Pyspark,我想返回至少包含1个空值的所有列的列表。我在StackOverflow上看到的所有其他类似问题都是过滤值为null的列,但这肯定是次优的,因为它必须找到所有null值,但我只想找到一个null值 我可以筛选值为null的列,然后如果此结果的计数大于1,则我知道该列包含null值。然而,正如我所说的,这是次优的,因为它首先找到所有空值 有没有办法做到这一点 此外,有没有办法在不遍历所有列的情况下执行此操作?Spark的SQL函数可以检查列的任何值是否满足条件 从pyspark.sql导入函数为F
从pyspark.sql导入函数为F
数据=[[1,2,3],[None,5,6],[7,None,9]]
df=spark.createDataFrame(数据,模式=[“col1”、“col2”、“col3”])
cols=[f“any({col}为null)as{col}u包含df.columns中的col的_null]
df.selectExpr(cols.show())
输出:
+------------------+------------------+------------------+
|col1_包含| null | col2_包含| null | col3_包含|null|
+------------------+------------------+------------------+
|对|对|错|
+------------------+------------------+------------------+
似乎很难。也许把你的数据转过来求和?这是否有用: