Apache spark 如何合并pyspark数据帧并删除空值?

Apache spark 如何合并pyspark数据帧并删除空值?,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我有以下pyspark数据帧结构: device | value_0|value_1|value_2|value_3| 1 43 null null null 2 null 22 null null 3 null null 5 null 4 null null null 89 1 44 null null null

我有以下pyspark数据帧结构:

device | value_0|value_1|value_2|value_3|
   1     43      null    null    null
   2     null    22      null    null
   3     null    null    5       null
   4     null    null    null    89
   1     44      null    null    null
   2     null    23      null    null
   3     null    null    6       null
   4     null    null    null    90
我的目标是合并这些列:

      device|value|
       1     43      
       2     22      
       3     5 
       4     89
       1     44      
       2     23
       3     6      
       4     90

您将如何执行此操作?

使用
F.coalesce
合并空值:

import pyspark.sql.functions as F
df = df.select('device',
    F.coalesce(
        *[F.col(col) for col in ['value_0', 'value_1', 'value_2', 'value_3']]
    ).alias('value')
)

使用
F.coalesce
合并空值:

import pyspark.sql.functions as F
df = df.select('device',
    F.coalesce(
        *[F.col(col) for col in ['value_0', 'value_1', 'value_2', 'value_3']]
    ).alias('value')
)