Самый простой способ - это настроить конфигурацию заданий внутри программы
Configuration conf=new Configuration();
long milliSeconds = 1000*60*60; <default is 600000, likewise can give any value)
conf.setLong("mapred.task.timeout", milliSeconds);
** перед ее настройкой. Проверьте правильность свойства в файле задания (файл job.xml) в графическом интерфейсе Jobtracker. назовите его mapred.task.timeout или mapreduce.task.timeout. , , во время выполнения задания снова проверьте в файле задания, изменяется ли это свойство в соответствии с установленным значением.
Я не думаю, что для этого есть предопределенный формат - формат в Python унаследован от C, и я почти уверен, что у вас нет желаемого формата в C.
Теперь, в python 3, у вас есть специальная функция format , в которой вы можете выполнять собственное форматирование. Удалить последние нули в python очень просто: просто используйте метод полосы:
a = 1.23040000
print str(a).rstrip('0')
Если вы хотите сохранить 0 после десятичной точки, это тоже не очень сложно.
Как насчет использования десятичный модуль?
«Десятичный модуль включает понятие значащих разрядов, так что 1,30 + 1,20 равно 2,50. Завершающий ноль сохраняется для обозначения значимости. Это обычное представление для денежных приложений. Для умножения «школьный» подход использует все числа в множимых. Например, 1,3 * 1,2 дает 1,56, а 1,30 * 1,20 дает 1,5600. "
] normalize () функция удаляет конечные нули:
>>> from decimal import *
>>> d1 = Decimal("1.30")
>>> d2 = Decimal("1.20")
>>> d3
Decimal("1.5600")
>>> d3.normalize()
Decimal("1.56")
Оператор '% 2.2f'
будет использовать только одно и то же количество десятичных знаков независимо от того, сколько значащих цифр в номере. Вам нужно будет определить это по номеру и вручную изменить формат. Вы могли бы сократить это, вывести строку с большим количеством десятичных знаков и удалить все конечные нули.
Простая функция для этого может выглядеть примерно как intel_format ()
в примере ниже:
import re
foo_string = '%.10f' % (1.33333)
bar_string = '%.10f' % (1)
print 'Raw Output'
print foo_string
print bar_string
print 'Strip trailing zeros'
print re.split ('0+$', foo_string)[0]
print re.split ('0+$', bar_string)[0]
print 'Intelligently strip trailing zeros'
def intel_format (nn):
formatted = '%.10f' % (nn)
stripped = re.split('0+$', formatted)
if stripped[0][-1] == '.':
return stripped[0] + '0'
else:
return stripped[0]
print intel_format (1.3333)
print intel_format (1.0)
При запуске вы получите следующий результат:
Raw Output
1.3333300000
1.0000000000
Strip trailing zeros
1.33333
1.
Intelligently strip trailing zeros
1.3333
1.0