Pentaho Kettle - Как обновить нулевые значения для отсортированных строк в чайнике - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь преобразовать данные из таблицы 1 в таблицу 2 с помощью чайника.Ситуация такова, что в таблице 1 данные отображаются следующим образом:

  c1       c2
  -------  ----------  
  A        1     
  A        null
  A        null
  B        2
  B        null
  B        null

И я хочу, чтобы шаги сгруппировали значения в столбце 1 по A, B ... и заменили нулевые значения в столбце 2Таким образом, вывод будет выглядеть следующим образом:

c1       c2
-------  ----------  
A        1     
A        1
A        1
B        2
B        2
B        2

Я попытался использовать шаг под названием Поиск в базе данных, чтобы заменить все нулевые значения, но, очевидно, он не может сначала сгруппировать значения в столбце 1, а затем заменитьна основе столбца 2.

Я знаю, что с помощью сценария sql можно сделать эту работу, но могут ли некоторые шаги в ложке сделать то же самое?Буду очень признателен за любую помощь / предложение.

1 Ответ

0 голосов
/ 15 апреля 2019

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

var row, last_row;

if (row != null) {
    //Save the data of the current row.
    last_row = row;

}else {
    //swap null value with last non-null value.
    row = last_row;

}

Вам просто нужно изменить имя строки для желаемого столбца, который вы хотите повторить. В вашем примере это будут c2 и last_c2.

...