apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.55k stars 3.54k forks source link

PrettyPrint Improvements #33527

Open asfimport opened 1 year ago

asfimport commented 1 year ago

We have some pretty printing capabilities, but we may want to think at a high level about the design first.

Reporter: Will Jones / @wjones127

Related issues:

Note: This issue was originally created as ARROW-18359. Please see the migration documentation for further details.

asfimport commented 1 year ago

Joris Van den Bossche / @jorisvandenbossche: Also linking ARROW-14799, as that is another high-level potential change for Tables/RecordBatches

asfimport commented 1 year ago

Dewey Dunnington / @paleolimbot: I'm not sure if this is covered by one of the subtasks, but really huge binary arrays take forever to print...I am guessing because it tries to convert the entire binary array to a string before selecting the few characters that will actually be shown:


library(arrow)
#> Some features are not enabled in this build of Arrow. Run `arrow_info()` for more information.
#> 
#> Attaching package: 'arrow'
#> The following object is masked from 'package:utils':
#> 
#>     timestamp

really_big_raw <- raw(1e9)
really_big_binary <- Array$create(list(really_big_raw), type = binary())
system.time(really_big_binary$ToString())
#>    user  system elapsed 
#>  12.396   1.660  14.269

(I ran into that one because the current encoding for geospatial data in Parquet files is binary() and the elements can be huge)

asfimport commented 1 year ago

David Li / @lidavidm: I'd say it's sorta related to ARROW-4099 but not quite the same, and worth a new subtask