ДЕСЯТИЧНОЕ значение вне диапазона - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь опубликовать данные из нашей среды SAS в удаленной базе данных Hadoop / Hive (в виде файлов последовательности).Я выполняю базовые тесты, получая некоторые исходные данные от наших бизнес-пользователей и используя шаг данных для записи в библиотеку Hadoop.

Я получаю ошибки, указывающие, что значение в строке X находится вне диапазона.

Например:

ERROR: Value out of range for column BUY_RT1, type DECIMAL(5, 5). Disallowed value is: 0.

Исходные данные имеют числовой формат 6.5, а фактическое значение - .00000.

Почему .00000 вне диапазона?Должен ли формат Hadoop быть DECIMAL(6, 5)?

Я получаю ту же ошибку при значении 0.09:

ERROR: Value out of range for column INT_RT, type DECIMAL(5, 5). Disallowed value is: 0.09

1 Ответ

0 голосов
/ 12 октября 2018

Вам может потребоваться проверить фактические значения в SAS.Если к числовому значению в SAS применен формат, вы увидите отформатированную (возможно, округленную) версию числового значения, где бы вы ни выводили значение, но базовое числовое значение может по-прежнему иметь более значимые цифры, которые вы не видите, из-заформат.

Например, вы говорите, что ваши исходные данные имеют формат 6,5, а «фактическое значение» составляет 0,00000;Вы уверены, что это фактическое значение?Чтобы проверить, вы можете попробовать сравнить значение с литералом 0 или поместить значение в журнал SAS в другом формате, например BEST32.(например, put BUY_RT1 best32.;).

Если это проблема, решение состоит в том, чтобы правильно округлить исходные числовые значения, а не просто применять формат.

...