Я ищу способ преобразования плоских данных в структуру данных. Вход для этого преобразования не является однородным. Некоторые данные содержат слишком много информации, другие данные содержат информацию, которая нуждается в обработке.Как преобразовать гетерогенные плоские данные в структуру данных
Позвольте мне пояснить на примере. Предположим, у меня есть файлы Excel с данными о машине. Файлы содержат информацию об автомобилях и их двигателях.
Файл 1:
Name | Type | EngineId | Manufacturer | Power (hp) | Torque Opel | Adam | I4 | Opel | 69 | 115
Файл 2:
Brand | Type | Engine | Power (kW) | Manufacturer Fiat | Punto | 1.2-L | 44 | Chrysler
Как вы можете видеть, файлы немного отличаются: Имя и марка для первого столбца, разные единицы измерения для Power, Производитель находится в разных положениях, и в файле 2 отсутствует момент крутящего момента.
Я хотел бы превратить это что-то вроде:
public class Car {
string Name;
string Type;
Engine Engine;
}
public class Engine {
string Id;
string Manufacturer;
double Power;
Dictionary<string,string> OtherAttributes;
}
Я думаю, трансформируют потребности классов для правил преобразования, а также:
public class MappingRules {
string FileType; // File 1 vs File 2
List<MappingRule> MappingRules;
}
public class MappingRule<T> {
string SourceColumnName;
string Target;
ITranslate<T> Translator;
}
interface ITranslate<T> {
T Convert(T sourceValue);
}
Моей проблемы: как я могу добиться этого, но даже подробнее: как мне это исследовать?
Обновление
я, наконец, выбрал подход, в котором закодирована структура-мишень (то есть Car
и Engine
класс). Пользователь получил инструмент, в котором он, по типу файла, сопоставляет столбцы свойствам этих классов. Затем переводчик преобразует значения в столбцы в свойства классов.
Это будет по крайней мере, начните изучение темы: https://en.wikipedia.org/wiki/Data_cleansing, но я надеюсь, что это не все, что полезно для этой проблемы. – MushinNoShin