Интеграция данных Pentaho Spoon, объединение двух CSV

Я хочу объединить два файла csv. Первый выглядит так: url; name; api. Поля url содержат 50-кратный одинаковый URL-адрес, имя пусто, а поля api содержат 50-кратный одинаковый ключ api. Второй csv выглядит так: url; name; api. url пуст, имя содержит 50 разных имен, api пусто.

Я хочу создать один файл csv: url; name; api с информацией из обоих csv, поэтому url и api содержат значение из первого и имя из второго CSV.

пока я просто создал два входа csv и подключил их к одному выходу csv. Результирующий csv имеет 100 записей, 50 с нулевым значением в качестве имени и 50 с нулевым значением в URL-адресе и API.

. введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения


person Jonas    schedule 13.11.2017    source источник
comment
Итак, первый файл - это 50 копий той же строки. Это реальный вариант использования или упрощение реального варианта использования? Сколько строк вы хотите в результате: 50 строк или 50x50 = 2500 строк?   -  person AlainD    schedule 14.11.2017
comment
я хочу иметь 50 строк, которые выглядят как url ​​+ name + api. Моя идея состоит в том, чтобы получить 50 имен артистов с last.fm, а затем получить песни от этих 50 артистов с помощью второго звонка для отдыха. Если есть лучший способ создать несколько вызовов с изменяющимся параметром, я был бы счастлив, если бы вы мне сказали. Все, что я нашел, это сетка данных, но мне нужно вручную вставить все URL-адреса.   -  person Jonas    schedule 15.11.2017


Ответы (1)


Если вы хотите увеличить количество столбцов, вам понадобится поиск или соединение.

У вас есть основной поток, и для каждой строки потока вы выбираете одну строку (Lookup) или несколько строк (Join) во вторичном потоке.

В вашем случае я бы сначала удалил все ненужные поля (имя в первом файле CSV, а также URL-адрес и api во втором) и ненужные строки (оставьте только одну строку в первом файле CSV). Затем сбросьте оба потока в Join Rows steps.

И, если я понимаю ваш вариант использования, вы, вероятно, слишком усложнили его, потому что для направления потока на том же этапе (здесь Text output 2) необходимо, чтобы столбцы были одинаковыми, чтобы они могли добавлять строки ввода один за другим.

person AlainD    schedule 14.11.2017
comment
эй, спасибо, это было то, что я искал, но теперь в моей строке есть пробелы, не знаю, откуда они. Могу я как-нибудь их отфильтровать? добавил картинки к моим вопросам - person Jonas; 15.11.2017
comment
На шаге CSV Input указывается длина строки. Если есть длина, строка будет дополнена пробелами или усечена, чтобы получить именно эту длину. - person AlainD; 16.11.2017