Как объединить 2 CSV-файла по столбцам в ложке, Пентахо, управляя преобразованием данных? - PullRequest
4 голосов
/ 19 июля 2011

Я столкнулся со следующей проблемой:

У меня есть два входа:1) У меня есть базовый файл csv с 35 столбцами и соответствующими заголовками.2) У меня есть множество файлов, которые я не контролирую, которые могут содержать или не содержать 35 столбцов, и, что еще хуже, они могут быть не в порядке.

Я должен сопоставить столбцы изВторой CSV-файл для столбцов в первом CSV-файле.Если во втором файле CSV нет всех 35 столбцов, я должен создать их в правильном порядке.

Как только у меня будет правильный файл CSV (тот, который заголовок выглядит как первый заголовок CSV), я быпередать его в сценарий, который управляет данными, ссылающимися на них по заголовкам столбцов.

Одним из возможных решений было бы получение существующих входных полей внутри сценария, однако я не могу этого сделать, потому что поля кажутсяисправлена ​​ссылка на существующие заголовки столбцов второго CSV-файла.Поэтому, когда я пытаюсь получить доступ к столбцу, который не существует, я получаю исключение ...

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 07 сентября 2015

This is an example data widening.

Термин " поля во втором csv не по порядку " может иметь несколько значений

  1. Тот же источникCSV-файл, но порядок полей время от времени различается
  2. Положение поля (номер столбца) в CSV-файле отличается в файлах, предоставляемых из другого источника.

Первый случай действительно странный.Один и тот же источник должен предоставлять те же данные, и если это не так, то логика принятия решения может быть действительно сложной.

Второй случай выглядит более реальным.В этом случае вы можете сделать все источники до 35 полей.Тогда вам нужно определить поля.В чайнике доступно множество инструментов для определения типа данных, работы со строками, регулярных выражений и так далее.

На самом деле это звучит так, как будто вам нужно автоматическое обнаружение полей.

Но без реальных данных трудно увидеть шаблон.Поскольку вы реализуете такую ​​логику обнаружения полей на уровне базы данных, это возможно и в чайнике.

В любом случае, если логика действительно сложна, используйте JavaStep, JavaScript.

...