Пытаюсь прочитать паркет с pyarrow==1.0.1
в качестве двигателя.
Данный :
columns = ['a','b','c']
pd.read_parquet(x, columns=columns, engine="pyarrow")
если файл x
не содержит c
, он выдаст:
/opt/anaconda3/.../lib/python3.6/site-packages/pyarrow/_dataset.pyx in pyarrow._dataset.Dataset.to_table()
/opt/anaconda3/.../lib/python3.6/site-packages/pyarrow/_dataset.pyx in pyarrow._dataset.Dataset._scanner()
/opt/anaconda3/.../lib/python3.6/site-packages/pyarrow/_dataset.pyx in pyarrow._dataset.Scanner.from_dataset()
/opt/anaconda3/.../lib/python3.6/site-packages/pyarrow/_dataset.pyx in pyarrow._dataset._populate_builder()
/opt/anaconda3/.../lib/python3.6/site-packages/pyarrow/error.pxi in pyarrow.lib.check_status()
ArrowInvalid: Field named 'c' not found or not unique in the schema.
Нет аргументов, чтобы игнорировать предупреждение и просто читать столбцы, которые отсутствуют как nan
.
Обработка ошибок тоже довольно плохая.
pyarrow.lib.ArrowInvalid("Field named 'c' not found or not unique in the schema.")
Достаточно сложно получить отсутствующее имя поля, чтобы его можно было использовать для удаления столбцов, переданных в следующем try
.
Есть ли способ для этого?