Add read_orc_metadata to libcudf - #11815
Conversation
…fea-read_orc_metadata
…fea-read_orc_metadata
…fea-read_orc_metadata
…fea-read_orc_metadata
…fea-read_orc_metadata
…fea-read_orc_metadata
…fea-read_orc_metadata
|
Cool aside and an argument against |
hyperbolic2346
left a comment
There was a problem hiding this comment.
Looking good to me, some minor nits.
| cudf::rmm_pool_raii rmm_pool; | ||
|
|
||
| auto constexpr num_chunks = 1; | ||
| auto constexpr num_chunks = RowSelection == row_selection::ALL ? 1 : 8; |
There was a problem hiding this comment.
No specific reason, just a value that's high enough for any overhead from chunked reading to presumably show up.
…fea-read_orc_metadata
Co-authored-by: Mike Wilson <hyperbolic2346@users.noreply.github.com>
nvdbaranec
left a comment
There was a problem hiding this comment.
Just a couple small comments
hyperbolic2346
left a comment
There was a problem hiding this comment.
tiny nit, but otherwise this looks great to me.
|
Benchmarked the API. Takes between 60 and 250 microseconds for 512MB dataframes, and 25 to 150 for a 512KB dataframes. Reading the same 512MB files takes 100-200 milliseconds, so the perf benefit is definitely there :) |
Codecov ReportBase: 87.40% // Head: 88.13% // Increases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## branch-22.12 #11815 +/- ##
================================================
+ Coverage 87.40% 88.13% +0.72%
================================================
Files 133 133
Lines 21833 21982 +149
================================================
+ Hits 19084 19373 +289
+ Misses 2749 2609 -140
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
hyperbolic2346
left a comment
There was a problem hiding this comment.
Thanks for doing the transform. It is informative. I would consider it a wash at best overall, but it is the preferred style in cudf.
I like the performance wins here, good work!
ajschmidt8
left a comment
There was a problem hiding this comment.
Approving ops-codeowner file changes
|
@gpucibot merge |
Description
Issue #11675
Adds a C++ interface to get information about an ORC file. It is meant to be an efficient way to get information like column names and types, as well as file structure (e.g. number of stripes). The returned structure can be expanded to include more types of metadata, for now it only returns info that we found relevant internally.
The returned column hierarchy matches the one used in ORC (i.e. root struct column included), not the hierarchy of a cuDF dataframe that the file would be read as (root column children become top level cuDF columns).
This PR also includes improvements to ORC reader benchmarks, enabled by the new metadata API.
Checklist