Как прочитать все столбцы из Avro, когда в новых разделах больше столбцов, чем в старых?

У меня есть данные в формате Avro, разделенные по дате и времени, и я получаю новые данные каждый час. Новые разделы могут содержать больше столбцов, чем старые. Когда я прочитал его с помощью Spark 2.4.3, я получил DataFrame со схемой первого (самого старого) раздела, и все новые добавленные столбцы были потеряны. Что мне делать, чтобы прочитать все столбцы? Есть ли обходной путь?

Спасибо.


person AndreyFaktor    schedule 18.11.2019    source источник
comment
Не могли бы вы добавить фрагмент вашего кода?   -  person Nir Hedvat    schedule 18.11.2019
comment
Вот он =) sparkSession.read .format(avro) .load(pathToData)   -  person AndreyFaktor    schedule 18.11.2019


Ответы (1)


Что вам нужно, так это возможность объединять схемы различных файлов, которые читает Spark. Вы можете добиться этого с помощью опции mergeSchema. Эта возможность применяется ко всем файловым источникам данных, а не только к Avro.

sparkSession.read.format("avro").option("mergeSchema", true).load(pathToData)

person Sim    schedule 19.11.2019