Я пытаюсь импортировать десятичные данные из Teradata в формат Hive Parquet с использованием TDCH, но это дает ошибку при выдаче типа. Не уверен, почему он пытается использовать десятичную строку для строки. Я использую десятичный тип данных с обеих сторон, например, Hive и Teradata. То же самое происходит и с полем Timestamp. Это происходит, когда таблица находится в формате Parquet в Hive, аналогичная вещь отлично подходит для формата RCfile. Любая помощь, пожалуйста?Тип Ошибка при показе при импорте Десятичные значения из Teradata в Hive (паркет) с использованием TDCH
ответ
В Парке нет данных с типом десятичной или временной метки в соответствии с Parquet Documentation, поэтому должно быть сопоставление с строкой.
Типы, поддерживаемые форматом файла, должны быть как можно меньше, с акцентом на то, как эти типы влияют на дисковое хранилище. Например, 16-разрядные ints явно не поддерживаются в формате хранения, так как они охватываются 32-разрядными ints с эффективным кодированием. Это уменьшает сложность внедрения читателей и писателей для формата. Типы: BOOLEAN: 1 бит boolean - INT32: 32-битные подписанные ints - INT64: 64-битные подписанные ints - INT96: 96-битные подписанные ints - FLOAT: IEEE 32-разрядные значения с плавающей запятой - DOUBLE: 64-разрядная плавающая точка IEEE values - BYTE_ARRAY: произвольно длинные байтовые массивы.
Тип данных в определении столбцов Hive и представлении типа данных в HDFS - это не одно и то же. Если вам нужны эти точные типы данных для ваших данных, вы должны попробовать другой формат.