Не уверен, полностью ли я понимаю ваш вопрос или ожидаемый результат.
spark имеет функцию coalesce () для получения первого ненулевого значения.Будет ли это работать?
from pyspark.sql.types import *
from pyspark.sql.functions import coalesce
lettersSchema = StructType([
StructField("a", StringType()),
StructField("b", StringType()),
StructField("c", StringType()),
StructField("d", StringType()),
StructField("e", StringType())
])
# create one row with "c" column null
df2 = spark.createDataFrame([
("A", "B", None, "D","E")
],
schema=lettersSchema
)
df2.select("a", "b", coalesce("c", "d").alias("c_or_d"), "e").show()