Yes, at least in theory it should be possible to e.g. load a very large CSV file with CSV.jl, transform it with Query.jl and then feed it into OnlineStats.jl. I think the architecture of all three packages should be such that this could work with a dataset that is larger than memory. In practice I don't think anyone has tried and I'm sure we would run into things that need fixing, but I can't think of some basic design decision in any of these packages that would prevent this kind of thing in principle.
There is a general question of the core interop type for these things. Right now things like regression packages mostly expect a DataFrame. But we could imagine a world where these packages expected a more generic type. I think right now there are a bunch of potential options out there: both DataStreams and Query define their own streaming interfaces for tabular data (in the case of Query it is just a normal julia iterator that returns NamedTuple elements). DataStreams in addition defines a column based interface that might be much faster when the dataset actually fits into memory (pure speculation on my end). I think there are also a bunch of attempts out there to define something like an abstract table structure, but I'm not sure to what extend they would enable a streaming data story. > -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Milan Bouchet-Valat > Sent: Thursday, September 29, 2016 1:33 AM > To: [email protected] > Subject: Re: [julia-stats] DataFrame and Memory Limitations > > We're not completely there yet, but with Query.jl and StructuredQueries.jl, > combined with JuliaDB/JuliaData packages, one should be able to work on > out-of-memory data sets as (or more) efficiently as e.g. SAS. The high-level > API is the same whether you work on a DataFrame or on an external data > base. > > There's also OnlineStats.jl for computing statistics without loading the full > data set in memory at once. > > > Regards > > > Le mercredi 28 septembre 2016 à 15:48 -0700, Juan a écrit : > > Yes, but you can only do simple things such as summaries or use functions > implemented on that special packages. You can do linear regression, till now > but you can't more complex things such as mixed effect regression or use > stan nor any other generic bayesian package. > > The same goes for Spark, you can only use predefined functions, very > simple ones, or create your own by hand, but it's very difficult that you can > program from scratch something like lme4. > > > > > > > Hi I don't know Julia, but in R you don't need to load all data > into memory just like SAS you can read off disk, in R both proprietary > Revolutionary Analytics R I think working with Hortonworks/Cloudera and > Hadoop and Yarn (I don't know if there is a Julia package for Yarn?, I know > little of Hadoop and [not really interested in Java ] and Yarn so I suggest > you > contact someone at Hortonworks or Revolution R) g which I saw a > demonstration of in R User group here in Ottawa, Canada as well as > Revolution R's other proprietary methods and bigmemory http://cran.r- > project.org/web/packages/bigmemory/index.html > and http://www.bigmemory.org/ can handle more data. I Here is a > discussion on large size data. > > > https://groups.google.com/forum/#!topic/julia-stats/eqYT85_vUlg > > > Regards, > > > Ramesh > > > > > > > > > > > On Tue, Aug 5, 2014 at 10:42 AM, Michael Smith <[email protected]> > wrote: > > > > All, > > > > > > > > Are there currently any solutions in Julia to handle > > > > larger-than-memory datasets in a similar way you do in a DataFrame? > > > > > > > > The reason I'm asking is that R has the limitation that you need > > > > to fit all your data into memory. On the other hand, SAS (while > > > > being quite > > > > different) does not have this limitations. > > > > > > > > In the age of "big data" this can be quite an advantage. > > > > > > > > Of course, you can "patch" this situation, e.g. in R you can use > > > > the ff or bigmemory packages, or use SQL. > > > > > > > > But my point is that it is bolted on, and you need to spend extra > > > > mental loops switching between, say, data.frame and ff, instead of > > > > focusing on your data problem at hand. This is a clear advantage > > > > of SAS, where you don't have to do that. So I'm wondering how this is > handled in Julia. > > > > > > > > Thanks, > > > > > > > > M > > > > > > > > P.S.: I do not intend to start a flame war, e.g. whether R or SAS > > > > or Julia is better. I'm just interested to find out whether such a > > > > solution exists in Julia (I haven't found any, but maybe I overlooked > something). > > > > And if no such solution exists, given that Julia is still young, > > > > evolving, and malleable (in a positive sense), it might make sense > > > > to think about it. > > > > > > > > -- > > > > You received this message because you are subscribed to the Google > Groups "julia-stats" group. > > > > > > > To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > > > > > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > > > > > > -- > > You received this message because you are subscribed to the Google > Groups "julia-stats" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "julia-stats" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "julia-stats" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
