相关疑难解决方法(0)

Spark DataDrame中=== null和isNull之间的差异

当我们使用时,我对这种差异感到困惑

 df.filter(col("c1") === null) and df.filter(col("c1").isNull) 
Run Code Online (Sandbox Code Playgroud)

相同的数据帧我在=== null中得到计数,但在isNull中计数为零.请帮我理解其中的区别.谢谢

sql scala dataframe apache-spark apache-spark-sql

18
推荐指数
1
解决办法
3万
查看次数

我只需要附加那些在 pyspark 数据框中有非空值的人

我的 pyspark 数据框 (df) 具有以下示例表 (table1): id, col1, col2, col3 1, abc, null, def 2, null, def, abc 3, def, abc, null

我试图通过忽略空值附加所有列来获取新列(最终)。我尝试过 pyspark 代码并使用 f.array(col1, col2, col3)。值被追加,但它不会忽略空值。我也尝试过 UDF 只附加非空列,但它不起作用。

import pyspark.sql.functions as f    
df = spark.table('table1')
df = df.withColumn('final', f.array(col1,col2,col3))

Actual result:
id, col1, col2, col3, final
1, abc, null, def, [abc,,def]
2, null, def, abc, [,def, abc]
3, def, abc, null, [def,abc,,]

expected result:
id, col1, col2, col3, final
1, abc, null, def, [abc,def]
2, null, def, abc, …
Run Code Online (Sandbox Code Playgroud)

python arrays apache-spark-sql pyspark pyspark-sql

2
推荐指数
1
解决办法
2355
查看次数