Hive metastore с хранилищем alluxio в проблеме типа данных parquet

Я использую prestodb с хранилищем метаданных улья для хранения схем и кешем alluxio в качестве внешнего хранилища данных. Формат хранения, используемый в схеме alluxio и улья, - ПАРКЕТ. При получении поля отметки времени из presto с помощью каталога улья. Я получаю сообщение об ошибке.

Столбец utdate объявлен как тип timestamp, но файл Parquet объявляет столбец как тип INT64.

Схема для набора данных

создать тест таблицы (отметка времени utcdate) WITH (format = 'PARQUIET', external_location = 'alluxio: // path-toserver / directory-path-to-parquet')

Эта проблема возникает после обновления prestodb v0.221 до версии v0.226.


person Arsalan Mudni    schedule 05.11.2019    source источник
comment
Я предлагаю вам перейти на PrestoSQL (prestosql.io), у которого нет этой проблемы.   -  person Dain Sundstrom    schedule 05.11.2019


Ответы (2)


Я использую это при сохранении паркета, чтобы решить проблему с отметкой времени.

pyarrow.parquet.write_table (self.arrow_table, file_name, use_deprecated_int96_timestamps = True)

Presto и Spark используют значение временной метки int96 для хранения метки времени в наносекундах. Формат метки времени по умолчанию для таблицы pyarrow - int64, в то время как presto рассматривает int64 как тип данных bigint. Если мы используем устаревшую версию метки времени int96 в pyarrow, мы получим значение метки времени в формате, совместимом с presto.

person Arsalan Mudni    schedule 26.11.2019

Непонятно, о чем вы спрашиваете, поэтому я предполагаю, что вопрос в том, как читать данные.

Нет никаких переключателей или изменений конфигурации, которые вы могли бы применить для чтения ваших данных в версии .226. Таким образом, в настоящее время у вас есть два варианта:

  • перейти на Presto .221
  • перейти на Presto 324
person Piotr Findeisen    schedule 06.11.2019
comment
Presto .221 поддерживает int64 как отметку времени, но presto .226 не поддерживает int64 как отметку времени. Скорее .226 требует int96 в качестве метки времени. Что устарело в pyarrow. - person Arsalan Mudni; 26.11.2019
comment
@ArsalanMudni, вы проверяли Presto 324? Как это работает с данными Pyarrow? - person Piotr Findeisen; 26.11.2019