Hi Igor, I was wondering if you have made any progress on this? I posted a new PR [1] which I believe handles the difficult algorithmic part of writing. There will be some follow-ups but I think this PR might take a while to review, so I was thinking of starting to take a look at the read side if you haven't started yet, and circle back to the final integration for the write side once the PR is checked in.
Thanks, Micah [1] https://github.com/apache/arrow/pull/6490 On Mon, Feb 3, 2020 at 4:08 PM Igor Calabria <igor.calab...@gmail.com> wrote: > Hi, I would love to help with this issue. I'm aware that this is a huge > task for a first contribution to arrow, but I feel that I could help with > the read path. > Reading parquet seems like a extremely complex task since both hive[0] and > spark[1] tried to implement a "vectorized" version and they all stopped > short of supporting complex types. > I wanted to at least give it a try and find out where the challenge lies. > > Since you guys are much more familiar with the current code base, I could > use some starting tips so I don't fall in common pitfalls and whatnot. > > [0] https://issues.apache.org/jira/browse/HIVE-18576 > [1] > > https://github.com/apache/spark/blob/master/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedParquetRecordReader.java#L45 > > On 2020/02/03 06:01:25, Micah Kornfield <e...@gmail.com> wrote: > > Just to give an update. I've been a little bit delayed, but my progress > is> > > as follows:> > > 1. Had 1 PR merged that will exercise basic end-to-end tests.> > > 2. Have another PR open that allows a configuration option in C++ to> > > determine which algorithm version to use for reading/writing, the > existing> > > version and the new version supported complex-nested arrays. I think a> > > large amount of code will be reused/delegated to but I will err on the > side> > > of not touching the existing code/algorithms so that any errors in the> > > implementation or performance regressions can hopefully be mitigated at> > > runtime. I expect in later releases (once the code has "baked") will> > > become a no-op.> > > 3. Started coding the write path.> > > > > Which leaves:> > > 1. Finishing the write path (I estimate 2-3 weeks) to be code complete> > > 2. Implementing the read path.> > > > > Again, I'm happy to collaborate if people have bandwidth and want to> > > contribute.> > > > > Thanks,> > > Micah> > > > > On Thu, Jan 9, 2020 at 10:31 PM Micah Kornfield <em...@gmail.com>> > > wrote:> > > > > > Hi Wes,> > > > I'm still interested in doing the work. But don't to hold anybody up > if> > > > they have bandwidth.> > > >> > > > In order to actually make progress on this, my plan will be to:> > > > 1. Help with the current Java review backlog through early next week > or> > > > so (this has been taking the majority of my time allocated for Arrow> > > > contributions for the last 6 months or so).> > > > 2. Shift all my attention to trying to get this done (this means no> > > > reviews other then closing out existing ones that I've started until it > is> > > > done). Hopefully, other Java committers can help shrink the backlog> > > > further (Jacques thanks for you recent efforts here).> > > >> > > > Thanks,> > > > Micah> > > >> > > > On Thu, Jan 9, 2020 at 8:16 AM Wes McKinney <we...@gmail.com> wrote:> > > >> > > >> hi folks,> > > >>> > > >> I think we have reached a point where the incomplete C++ Parquet> > > >> nested data assembly/disassembly is harming the value of several> > > >> others parts of the project, for example the Datasets API. As another> > > >> example, it's possible to ingest nested data from JSON but not write> > > >> it to Parquet in general.> > > >>> > > >> Implementing the nested data read and write path completely is a> > > >> difficult project requiring at least several weeks of dedicated work,> > > >> so it's not so surprising that it hasn't been accomplished yet. I > know> > > >> that several people have expressed interest in working on it, but I> > > >> would like to see if anyone would be able to volunteer a commitment > of> > > >> time and guess on a rough timeline when this work could be done. It> > > >> seems to me if this slips beyond 2020 it will significant diminish > the> > > >> value being created by other parts of the project.> > > >>> > > >> Since I'm pretty familiar with all the Parquet code I'm one candidate> > > >> person to take on this project (and I can dedicate the time, but it> > > >> would come at the expense of other projects where I can also be> > > >> useful). But Micah and others expressed interest in working on it, so> > > >> I wanted to have a discussion about it to see what others think.> > > >>> > > >> Thanks> > > >> Wes> > > >>> > > >> > > >