Предположим, у меня есть кадр данных, который выглядит следующим образом:
+-----+-----+-----+-----+
| A | B | C | D |
+-----+-----+-----+-----+
| Y |null | Y |null |
|null | N | N |null |
| N | Y |null | N |
+-----+-----+-----+-----+
Я хочу добавить новый столбец, который представляет собой объединение имен всех ненулевых столбцов для каждой строки.
Итак, для приведенного выше примера добавился бы новый столбец
+--------+
|non-null|
+--------+
| A, C |
| B, C |
| A, B, D|
+--------+
Есть ли простой способ сделать это? Я пытался найти анти-коалесценцию, что-бы, если не ноль, использовать предоставленное имя. Например, если было слияние:
df.withColumn("non-null", antiCoalesce("A", "A,") + antiCoalesce("B", "B,") + antiCoalesce("C", "C,") + antiCoalesce("D", "D"))
Увы, такой функции нет, но она демонстрирует то, что я ищу.