Как округлить десятичное значение в CDAP Wrangler? - PullRequest
1 голос
/ 29 января 2020

Я проанализировал файл CSV, который содержит столбец currency_exchange_rate со значениями с разными десятичными знаками, например:

  • 3,6415
  • 0,896458
  • 1
  • 0,30376

Я бы хотел, чтобы все ставки были округлены до 4 десятичных знаков, в случае, если это выше, должно выглядеть так:

  • 3,6415
  • 0,8965
  • 1,0000
  • 0,3038

При изменении типа данных столбца на 'float' опция 'format' неактивна. Я проверил главы «Директивы» и «Функции» для получения дополнительной информации, и ничто не относится к десятичным разрядам значения с плавающей запятой. Я нашел другой поток в StackOverflow, касающийся пользовательских преобразований , но все же я не знаю, возможно ли округлить значения так, как мне нужно.

Не могли бы вы дать мне знать, как добиться формат я описал выше? Любой вклад будет высоко ценится.

1 Ответ

2 голосов
/ 30 января 2020

Если вы уже изменили тип данных столбца на плавающее, вы можете использовать параметры в разделе Рассчитать (вместо формата), чтобы выполнять такие операции, как округление, умножение, деление и т. Д. c. Обратите внимание, что «Округление» будет округлять до ближайшего целого числа, поэтому вам нужно будет сделать что-то вроде умножения и деления на 10 ^ (количество желаемых десятичных разрядов), а также округления.

Вы также можете определить пользовательский трансформация, чтобы сделать что-то подобное. Простое пользовательское преобразование, которое принимает все значения столбца с именем col1 и округляет их до двух знаков после запятой, может выглядеть следующим образом: математика: круг (столбец1 * 100) * 0,01

для более сложных (и, возможно, более точные) пользовательские преобразования вы можете использовать выражение jexl. Более подробную информацию о пользовательских преобразованиях, включая примеры, можно найти здесь: https://medium.com/cdapio/advanced-cdap-directives-c10569724da0

...