несовместимая схема при чтении паркета и экспорте из Vertica - PullRequest
0 голосов
/ 04 февраля 2019

Я заметил странное поведение при экспорте данных из 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
...

Затем я пытаюсь прочитать его с помощью pyarrow:

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

1 Ответ

0 голосов
/ 07 апреля 2019

Вам необходимо исключить столбец раздела (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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...