Минимальное требование к библиотеке ML состоит в том, чтобы она могла выводить типы чрезвычайно большого числа полей в реальных приложениях ML (например, 2000).
Real World ML Applications живет в конвейере. Буквально: конвейер, как в fifoq в стиле UNIX / Linux, именованные каналы, соединенные символом канала. Не абстракция, называемая «конвейером» внутри документа, написанного на стороннем языке и скомпилированного. Эти конвейеры типизированы (как правило, не шаблонизированы), и все инструменты, связанные с конвейерами UNIX / Linux, выводят типы во время выполнения.
Эти инструменты позволяют динамически c генерировать и расширять поля и типы CSV до произвольной ширины, превышающей возможности отдельного файла для кодирования вручную.
Итак, еще раз, минимальное требование к библиотеке ML состоит в том, что она имеет возможность открывать файл ML, не бросая график работы на колени инженера ML, когда он может развернуть всю систему, используя Инструменты GNU + Python за то же время.
Это означает вывод типов чрезвычайно большого числа полей в потенциально динамически генерируемом и быстро меняющемся файле CSV. В идеале одно и то же двоичное консольное приложение может использоваться для данных CSV на различных этапах эволюции или разработки конвейера, так что аннотирование типов полей и перекомпиляция не нужны.
Я рассматриваю систему ввода-вывода ML. NET, в дополнение к CsvProvider от F # и доступным библиотекам CSV для C#. Я также рассматриваю взаимодействие CLR / CLI, так как могу создать систему вывода C ++ CSV, но шаблоны CLR / CLI VS, похоже, работают только на Windows платформах.
Кажется, что нет возможности загрузить CSV с выведенными базовыми c типами (datetime, double, int, string). Это точная оценка?