Извлечь строку между разделителями и заполнить в столбцы - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть исходная таблица с такими данными:

columndata list
abc        Paul;Michael;Benjamin;Latif
def        High;Medium;Low;NULL
ghi        Yes;No;Yes;No

Я хотел бы получить выходные данные в целевой таблице (столбцы уже определены), как показано ниже:

abc      def    ghi  (column names)
Paul     High   Yes
Michael  Medium No
Benjamin Low    Yes
Latif    NULL   No

Есть ли простой способ извлечь данные с разделителями и загрузить в соответствующие столбцы в целевой таблице Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Этого можно добиться, используя tNormalize и tPivotToColumnsDelimited.

enter image description here

tNormalize, чтобы разбить список на отдельные элементы:

enter image description here

Выберите столбец для нормализации (список значений) и их разделитель. Выходные данные этого компонента выглядят так:

|=--+-------=|
|col|values  |
|=--+-------=|
|abc|Paul    |
|abc|Michael |
|abc|Benjamin|
|abc|Latif   |
|def|High    |
|def|Medium  |
|def|Low     |
|def|NULL    |
|ghi|Yes     |
|ghi|No      |
|ghi|Yes     |
|ghi|No      |
'---+--------'

Далее, в tMap, назначьте позицию каждому полю для построения целевой строки (Нам нужно знать, что первая строка содержит «Paul» в столбец ab c, "High" в столбце def и "Yes" в столбце ghi .. et c) Я использую эту последовательность:

Numeric.sequence("seq_" + row4.col, 1, 1)

enter image description here

Это сбросит последовательность для каждого нового столбца.

Наконец, tPivotToColumnsDelimited будет вращать данные: enter image description here

Затем вы читаете файл, сгенерированный tPivotToColumnsDelimited, и загружаете его в вашу целевую таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...