Uh oh!
There was an error while loading. Please reload this page.
ARROW-11123: [Rust] Use cast kernel to simplify csv parser - #9090
ARROW-11123: [Rust] Use cast kernel to simplify csv parser#9090Dandandan wants to merge 3 commits into
Conversation
andygrove
commented
Jan 4, 2021
I like the idea of using |
Dandandan
commented
Jan 4, 2021
I think this needs to be done to fully implement this PR:
I think an eventual performance benefit is that it makes it easier to get rid of the (slow) |
jorgecarleitao
commented
Jan 4, 2021
I'm curious about the perf implications. Even for integers or dates, we will always need to verify that they are utf8 compliant to create valid Note that people can always pass a |
@jorgecarleitao note that the The current performance penalty between master and this branch currently is ~10% as we introduce an extra intermediate step which I think could be more than compensated for by removing the This is the structure the csv crate is using per row: structByteRecordInner{/// The position of this byte record.pos:Option<Position>,/// All fields in this record, stored contiguously.fields:Vec<u8>,/// The number of and location of each field in this record.bounds:Bounds,} |
jorgecarleitao
commented
Jan 4, 2021
Thanks for the explanation. I see what you mean. I agree that it is worth the effort to try it out 👍 |
alamb
commented
Jan 4, 2021
I also like the general idea of using the |
nevi-me
commented
Jan 4, 2021
|
alamb
commented
Feb 13, 2021
@Dandandan As part of trying to clean up the backlog of Rust PRs in this repo, I am going through seemingly stale PRs and pinging the authors to see if there are any plans to continue the work or conversation. |
Dandandan
commented
Feb 13, 2021
Closing for now, will reopen when the other parts are done @alamb |
This came up in #9084 when discussing the PR with @jorgecarleitao
One of the ideas here is that we could take advantage of the
castkernel in Arrow to parse the csv column, deduplicating code and making more use of Arrow. We can get rid of the custom parsers and parsing / building primitive arrays.On loading the CSV in the TCPH benchmark looks like this has a small negative effect on performance.