Вы можете использовать понимание списка, чтобы проверить, является ли каждый столбец нулевым:
[col(c).isNull() for c in ColumnList]
Затем вы можете использовать functools.reduce
для побитового вычисления и (&
) вместе:
from functools import reduce
from pyspark.sql.functions import col, when
ColumnList = ['id','programid']
joinSrcTgt.withColumn(
'action',
when(
reduce(lambda a, b: a&b, [col(c).isNull() for c in ColumnList]),
'insert'
)
)