У меня есть несколько неоднородных структурированных файлов, хранящихся в кластере Hadoop. Файлы содержат строку заголовка, но не все файлы содержат одинаковые столбцы.
file1.csv:
a,b,c
1,2,1
file2.csv:
a,b,d
2,2,2
Что мне нужно сделать, так это найти все данные в столбце a или столбце c и обработать их дальше (возможно, Spark SQL). Так что я ожидаю что-то вроде:
a,b,c,d
1,2,1,,
2,2,,2
Просто делаю
spark.read.format("csv").option("header", "true").load(CSV_PATH)
пропустит все столбцы, отсутствующие в «первом» прочитанном файле.
Как я могу это сделать? Является ли преобразование в Parquet и его набор данных более подходящим?