Как объединить простой (то есть без вложенных структур) фрейм данных в список?
Моя проблема заключается в обнаружении всех пар узлов, которые были изменены / добавлены / удалены из таблицы пар узлов.
Это означает, что у меня есть таблица «до» и «после» для сравнения. Объединение данных до и после приводит к строкам, которые описывают, где пара появляется в одном кадре данных, но не в другом.
Example:
+-----------+-----------+-----------+-----------+
|before.id1 |before.id2 |after.id1 |after.id2 |
+-----------+-----------+-----------+-----------+
| null| null| E2| E3|
| B3| B1| null| null|
| I1| I2| null| null|
| A2| A3| null| null|
| null| null| G3| G4|
Цель состоит в том, чтобы получить список всех (различных) узлов во всем кадре данных, который будет выглядеть следующим образом:
{A2,A3,B1,B3,E2,E3,G3,G4,I1,I2}
Потенциальные подходы:
- Объединение всех столбцов отдельно и отдельно
- flatMap и отчетливый
- карта и сглаживание
Поскольку структура хорошо известна и проста, похоже, должно быть столь же простое решение. Какой подход, или другие, был бы самым простым?
Другие заметки
- Порядок пары id1-id2 важен только для обнаружения изменений
- Порядок в результирующем списке не важен
- DataFrame имеет размер от 10 до 100 тыс. Строк
- Отдельно в результирующем списке приятно иметь, но не обязательно; при условии, что это тривиально с отдельной операцией