Loading very large CSV files (~20GB)

14 views (last 30 days)
I have some CSV files that I need to import into the MATLAB (preferably in a .mat format). I already tried to break down these files using csvread function into 100 cluster pieces, but it's very slow and it doesn't go further than 60 steps even though my computer machine is fairly new. I need to extract only numeric values and this values are separated by comma. I will appreciate it if you can help me to get through this.
Thanks,
Sajad
  2 Comments
per isakson
per isakson on 17 Mar 2016
Sadjad Fakouri Baygi
Sadjad Fakouri Baygi on 17 Mar 2016
Thanks, This shortcut worked out.

Sign in to comment.

Accepted Answer

Robert
Robert on 17 Mar 2016
You should look into datastore and mapreduce. They were introduced in R2014b and are intended for handling large data sets. The datastore object allows you to read the data in chunks, skip columns, and store the results in a table. It's behavior is somewhat similar to fread or fscanf with a size input; however, the datastore's use of a table allows you to assign different data types to each column. I use this for data that includes Boolean status bits along with doubles so that I don't have to store the Booleans as doubles in my data array.
mapreduce is specifically designed for operating on data sets that don't fit in memory. Rather than attempt to explain it I will simply suggest you check out the documentation.
docsearch Getting started with mapreduce
  1 Comment
Sadjad Fakouri Baygi
Sadjad Fakouri Baygi on 18 Mar 2016
This solution is more professional, and worked very well.
Thanks,

Sign in to comment.

More Answers (0)

Categories

Find more on Large Files and Big Data in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!