Redshift не вставляет данные должным образом

Или вы можете просто использовать commands.getstatusoutput :

   commands.getstatusoutput("ssh machine 1 'your script'")

Я использовал его широко и отлично работает.

В Python 2.6+, используйте subprocess.check_output .

0
задан Srinivasu 13 July 2018 в 09:42
поделиться

1 ответ

Наиболее точное представление 0.1475 в стандарте IEEE754 для Double -

1.47499999999999992228438827624E-1 (похоже, но с меньшим количеством цифр для Float)

Redshift использует (Float или Double) внутри перед (число 4 в вашем случае) и не применяет округление, а просто обрезает результат до 4 знаков после запятой.

Будут показаны точные значения X + Y/(2^N), которые вы может проверить. Для 4 десятичных знаков наилучшее значение равно 1/16 = 0,0625

. Поэтому вам необходимо передать параметр ROUNDEC при использовании copy в соответствии с документом здесь

2
ответ дан diginoise 17 August 2018 в 13:15
поделиться
  • 1
    Можете ли вы объяснить Only values of X + 1/(2^N) will appear precise, which you can test. For 4 decimal places the best value is 1/16 = 0.0625 – Srinivasu 13 July 2018 в 13:41
  • 2
    Фактически, фракция должна быть Y/2^N (исправлена ​​ответная реакция). Только фракции типа 1/2, 1/4, 3/4 1/8, 3/8, 5/8, 7/8, 1/16, ... 1/32 имеют точные двоичные представления. Любая другая фракция будет иметь неточное двоичное представление с бесконечным числом дробных цифр. Точно так же, как для нас, использующих десятичные дроби 1/3 == 0.(3), 2/3 == 0.(6), и только фракции вида Y/10^N могут быть представлены с использованием конечного числа десятичных знаков. – diginoise 13 July 2018 в 14:04
  • 3
    Опция ROUNDEC работает – Srinivasu 20 July 2018 в 09:06
Другие вопросы по тегам:

Похожие вопросы: