Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Аналог Decode в Parallel
|
|||
|---|---|---|---|
|
#18+
Доброе утро! Коллеги помогите пожалуйста аналог этой функции в Transformer stage. Есть вариант много if else писать, но охота как-то по грамотнее. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 09:00 |
|
||
|
Аналог Decode в Parallel
|
|||
|---|---|---|---|
|
#18+
К великому сожалению даже в версии 8.7 прямого аналога этой функции в Parallel Transformer нет. Единственное, что могу вам сейчас посоветовать - это сворачивать условия для сравнения из множества if then else в один Index() при необходимости заменить на одно целевое значение. Например: If Index('#_95_#_97_#_98_#', '#_': In.RowValue : '_#', 1) > 0 Then 'Win' Else If Index(...) > 0 Then 'Lin' Else 'UNIX' И т.д... Для больших объёмов, предлагаю использовать Lookup Stage с таблицей "раскраски" по справочному потоку. Если значение не зацепилось - ставите в стейдже после Lookup значение по умолчанию, например с помощью NullToValue() функции трасформера. Таблицу раскраски можно оформить как "select ... from table () T", в виде RowGenerator или с помощью обычной таблицы в БД. Я обычно веду обычную таблицу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2012, 23:45 |
|
||
|
Аналог Decode в Parallel
|
|||
|---|---|---|---|
|
#18+
HunterikК великому сожалению даже в версии 8.7 прямого аналога этой функции в Parallel Transformer нет. Единственное, что могу вам сейчас посоветовать - это сворачивать условия для сравнения из множества if then else в один Index() при необходимости заменить на одно целевое значение. Например: If Index('#_95_#_97_#_98_#', '#_': In.RowValue : '_#', 1) > 0 Then 'Win' Else If Index(...) > 0 Then 'Lin' Else 'UNIX' И т.д... Для больших объёмов, предлагаю использовать Lookup Stage с таблицей "раскраски" по справочному потоку. Если значение не зацепилось - ставите в стейдже после Lookup значение по умолчанию, например с помощью NullToValue() функции трасформера. Таблицу раскраски можно оформить как "select ... from table () T", в виде RowGenerator или с помощью обычной таблицы в БД. Я обычно веду обычную таблицу... Добрый день! Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 09:08 |
|
||
|
Аналог Decode в Parallel
|
|||
|---|---|---|---|
|
#18+
vadipok, еще,как вариант, есть stage Modify, в котором есть набор функций 'lookup' - они правда своеобразно работают и позволяют "декодить" только некоторые типы в некоторые. подробнее в developer guide lookup_string_from_int16 lookup_uint32_from_ustring и другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2012, 17:11 |
|
||
|
Аналог Decode в Parallel
|
|||
|---|---|---|---|
|
#18+
Ну, век живи... Выражение из Modify оператора... name_C на входе, NEW_NAME_C на выходе. Входная колонка дропается... NEW_NAME_C:int16 = lookup_int16_from_string[{default_value = 0} ('A'=1;'B'=2;'C'=3;'D'=4;'E'=5;'F'=6;'G'=7;'H'=8;'I'=9;'J'=10)](name_C) Работает... Кстати, modify оператор позволяет передавать себе строки преобразований на этапе runtime через параметр задания, так что прикольно - хардкодом не назовёшь... =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2012, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=37986743&tid=1601665]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
87ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 293ms |
| total: | 464ms |

| 0 / 0 |
