# \[ANN\] DataConvenience v0.1.2

**URL:** <https://discourse.julialang.org/t/ann-dataconvenience-v0-1-2/37854>\
**Category:** Package Announcements\
**Tags:** data, csv, big-data\
**Created:** [April 19, 2020, 4:05pm UTC](https://discourse.julialang.org/t/ann-dataconvenience-v0-1-2/37854 "2020-04-19T16:05:39Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [April 19, 2020, 4:05pm UTC](https://discourse.julialang.org/t/ann-dataconvenience-v0-1-2/37854/1 "2020-04-19T16:05:39Z")

</div>

A number of posts have been asking for a CSV chunk reader and the new major feature for DataConvenience is reasonably fast chunk reader based on CSV.jl.

See [GitHub - xiaodaigh/DataConvenience.jl: Convenience functions missing in Julia](https://github.com/xiaodaigh/DataConvenience.jl#csv-chunk-reader)

### CSV Chunk Reader

You can read a CSV in chunks and apply logic to each chunk. The types of each column is inferred by `CSV.read` .

```julia-auto
for chunk in CsvChunkIterator(filepath) 
  # chunk is a DataFrame # do something to df
end

```

The chunk iterator uses `CSV.read` parameters. The user can pass in `type` and `types` to dictate the types of each column e.g.

```julia-auto
# read all column as String 
for chunk in CsvChunkIterator(filepath, type=String) 
  # df is a DataFrame where each column is String # do something to df
end

```

```julia-auto
# read a three colunms csv where the column types are String, Int, Float32 
for chunk in CsvChunkIterator(filepath, types=[String, Int, Float32]) 
  # do something to df
end

```
