У меня есть тысячи CSV-файлов, которые имеют одинаковые, но не идентичные заголовки в одном каталоге. Структура выглядит следующим образом:
путь / к / файлов / unique_parent_directory / *. CSV
Один CSV-файл может быть:
| Column_A | Column_B | Column_C | Column_D |
| V1 | V2 | V3 | V4 |
Второй CSV-файл может быть:
| Coulmn_A | Coulmn_B | Coulmn_E | Coulmn_F |
| V5 | V6 | V7 | V8 |
Результат, который я хочу создать, - это один Spark Dataframe, который правильно объединяет файлы без перекрывающихся столбцов, вывод для предыдущего примера должен быть таким:
| Column_A | Column_B | Column_C | Column_D | Coulmn_E | Coulmn_F |
| V1 | V2 | V3 | V4 | Нуль | Ноль |
| V5 | V6 | Нуль | Нуль | V7 | V8 |
Код, который я использую для создания фреймов данных:
val df = sparkSession.read
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.option("mergeSchema", "true")
.load(path/to/files/unique_parent_directory/*.csv)
.persist(StorageLevel.MEMORY_AND_DISK_SER)
Но я получаю следующий результат:
| Column_A | Column_B | Column_C | Column_D |
| V1 | V2 | V3 | V4 |
| V5 | V6 | V7 | V8 |
Есть ли способ получить нужный фрейм данных без запуска процесса объединения заголовков?