Я бы очень хотел помочь тебе, но я не уверен, чего ты на самом деле хочешь достичь. Каково ваше намерение по этому поводу?
Если вы читаете файл паркета со всеми его разделами и просто хотите получить столбцы, которые есть у обоих разделов, возможно, опция чтения "mergeSchema" подойдет вам.
Как и Protocol Buffer, Avro и Thrift, Parquet также поддерживает эволюцию схемы. Пользователи могут начать с простой схемы и постепенно добавлять дополнительные столбцы в схему по мере необходимости. Таким образом, пользователи могут получить несколько файлов Parquet с разными, но взаимно совместимыми схемами. Источник данных Parquet теперь может автоматически обнаруживать этот случай и объединять схемы всех этих файлов.
Поскольку объединение схем является относительно дорогой операцией и в большинстве случаев не является необходимостью, мы отключили ее по умолчанию. начиная с 1.5.0. Вы можете включить его, установив параметр источника данных mergeSchema в значение true при чтении файлов Parquet (как показано в примерах ниже) или установив глобальный параметр SQL spark. sql .parquet.mergeSchema в значение true.
см. документацию по spark
, поэтому было бы интересно, какую версию spark вы используете и как свойства
spark.sql.parquet.mergeSchema
(настройка искры) и mergeSchema
(клиент) установлены