{"action":"created","issue":{"url":"https://api.github.com/repos/quinnj/CSV.jl/issues/2","labels_url":"https://api.github.com/repos/quinnj/CSV.jl/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/quinnj/CSV.jl/issues/2/comments","events_url":"https://api.github.com/repos/quinnj/CSV.jl/issues/2/events","html_url":"https://github.com/quinnj/CSV.jl/issues/2","id":94861252,"number":2,"title":"CSV.read() return value","user":{"login":"quinnj","id":2896623,"avatar_url":"https://avatars.githubusercontent.com/u/2896623?v=3","gravatar_id":"","url":"https://api.github.com/users/quinnj","html_url":"https://github.com/quinnj","followers_url":"https://api.github.com/users/quinnj/followers","following_url":"https://api.github.com/users/quinnj/following{/other_user}","gists_url":"https://api.github.com/users/quinnj/gists{/gist_id}","starred_url":"https://api.github.com/users/quinnj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quinnj/subscriptions","organizations_url":"https://api.github.com/users/quinnj/orgs","repos_url":"https://api.github.com/users/quinnj/repos","events_url":"https://api.github.com/users/quinnj/events{/privacy}","received_events_url":"https://api.github.com/users/quinnj/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":51,"created_at":"2015-07-14T03:41:47Z","updated_at":"2015-07-16T23:38:55Z","closed_at":null,"body":"I'd like to decide on the Julia structure that `CSV.read()` returns. Speak now or forever hold your peace (or write your own parser, i don't care). The current candidates are:\r\n\r\n* Matrix{Any}: easy to allocate and work with, but we lose type information and header values\r\n* Dict{String,Vector{T}}: column_name => column_values::Vector{T}, use sentinel values for nulls\r\n* Dict{String,NullableArray{T}}: same as above, but we naturally represent nulls\r\n* DataFrame with NullableArray columns: hook into DF, but hook into DF\r\n* Tables.Table: this would be essentially an in-memory or on-disk SQLite database (I'll probably plan on supporting this one regardless, but maybe it could be the only option?)\r\n* Any other recommendations out there?\r\n\r\nI'm leaning towards `Dict{String,NullableArray{T}}` as it's the most straightforward\r\n\r\n@johnmyleswhite @davidagold @StefanKarpinski @jiahao @RaviMohan\r\n"},"comment":{"url":"https://api.github.com/repos/quinnj/CSV.jl/issues/comments/122131421","html_url":"https://github.com/quinnj/CSV.jl/issues/2#issuecomment-122131421","issue_url":"https://api.github.com/repos/quinnj/CSV.jl/issues/2","id":122131421,"user":{"login":"johnmyleswhite","id":22064,"avatar_url":"https://avatars.githubusercontent.com/u/22064?v=3","gravatar_id":"","url":"https://api.github.com/users/johnmyleswhite","html_url":"https://github.com/johnmyleswhite","followers_url":"https://api.github.com/users/johnmyleswhite/followers","following_url":"https://api.github.com/users/johnmyleswhite/following{/other_user}","gists_url":"https://api.github.com/users/johnmyleswhite/gists{/gist_id}","starred_url":"https://api.github.com/users/johnmyleswhite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnmyleswhite/subscriptions","organizations_url":"https://api.github.com/users/johnmyleswhite/orgs","repos_url":"https://api.github.com/users/johnmyleswhite/repos","events_url":"https://api.github.com/users/johnmyleswhite/events{/privacy}","received_events_url":"https://api.github.com/users/johnmyleswhite/received_events","type":"User","site_admin":false},"created_at":"2015-07-16T23:38:55Z","updated_at":"2015-07-16T23:38:55Z","body":"I've got a ton of datasets that I can send over. I particularly like optimizing against the files Wes used for Pandas: http://wesmckinney.com/blog/a-new-high-performance-memory-efficient-file-parser-engine-for-pandas/"}}