Чтение и обработка большого CSV в OCaml без загрузки всего этого в память

#csv #ocaml #data-science

#csv #ocaml #наука о данных

Вопрос:

Исходя из Python data science, я хочу прочитать и обработать большой CSV-файл данных с помощью OCaml, не перенося все это в память.

Ранее я делал это, хотя и как новичок, в F # с помощью пакета CSVHelper, который я мог бы использовать для чтения очень большого файла CSV в Seq и обработки с такими вещами, как Seq.countBy , Seq.groupBy и т.д.

Как бы люди посоветовали мне делать подобные вещи в OCaml?

Комментарии:

1. как насчет ocaml-csv: math.umons.ac.be/anum/software/csv/Csv/index.html ?

2. Да, действительно, я видел только этот пакет. Я немного поработал с этим и попробую еще, но я изо всех сил пытался найти какие-либо примеры того, как перенести это в Seq . Кроме того, я не видел ни Seq.countBy или Seq.groupBy в OCaml… может быть, мне просто нужно было бы написать их самому?

3. @Robert в пакете oseq реализовано множество функций: github.com/c-cube/oseq . Вы должны уметь использовать, например c-cube.github.io/oseq/0.3/oseq/OSeq/index.html#val-fold для реализации countBy / groupBy .

4. @PierreG. разрешает ли файл ocaml-csv «потоковую передачу» — он не загружает весь CSV в память, а только по частям, когда вы, например, запускаете карту в последовательности?