I am happy to announce v2 of the JSONLines.jl package. This is basically a complete rewrite but offers much more functionality. There are two main functions: Create an iterator over a JSONLines file (now LineIterator
) or create an index of the rows (now LineIndex
). Indexing takes one Int
per row (+ some metadata like columnnames and types) in memory and should therefore be feasible even for large files. It can be materialized into memory using materialize
which optionally takes a function as an argument that is applied to the rows in a map-like fashion and only the result is kept in memory. If no function is provided it materializes a Vector{NamedTuple}
similar to Tables.rowtable
. To get a columnwise representation of the data the columnwise
function can be used (the result is similar to a Tables.columntable
). In addition filter
and find*
functions have been implemented. Please let me know if you can think of any improvements or find something is not working. Especially support for JSON arrays as rows is not mature at the moment.