Несовместимая схема при чтении паркета и экспорте из Vertica
Я заметил странное поведение при экспорте данных из Vertica и попытке прочитать его позже с паркетом (python). Допустим, я хочу иметь дамп таблицы для паркета:
EXPORT TO PARQUET (directory = '/data/table_name') over (partition by event_date)
AS select * from table;
это дает мне следующую структуру:
/data/table_name
- event_date=2019-01-01
- event_date=2019-01-02
- event_date=2019-01-03
...
Тогда я пытаюсь прочитать это с пиарроу:
import pyarrow.parquet as pq
df = pq.read_table('/data/table_name')
Но я получаю ошибку несовместимой схемы:
ValueError: Schema in partition[event_date=0] ./event_date=2019-01-01/84087de6-node0001-139759025940222.parquet was different.
user_id: string
event_id: int64
event_name: string
install_date: int32
event_date: int32
site_id: string
vs
user_id: string
event_id: int64
event_name: string
install_date: int32
site_id: string
Как так?
PS Если я читаю каждый каталог в отдельности - все работает нормально.
df1 = pq.read_table('/data/table_name/event_date=2019-01-01')
df2 = pq.read_table('/data/table_name/event_date=2019-01-02')
df3 = pq.read_table('/data/table_name/event_date=2019-01-02')
df1.schema == df2.schema == df3.schema
> True
0 ответов
Вам нужно исключить столбец раздела (event_date
) из запроса на экспорт:
EXPORT TO PARQUET (directory = '/data/table_name') over (partition by event_date)
AS SELECT user_id,
event_id,
event_name,
install_date,
site_id
FROM table;