Hello,
I'm trying to build a Rust based Flight server and I'd like to use
Dictionary encoding for a number of string columns in my data. I've seen
that StringDictionary was recently added to Rust here:
https://github.com/apache/arrow/commit/c7a7d2dcc46ed06593b994cb54c5eaf9ccd1d21d#diff-72812e30873455dcee2ce2d1ee26e4ab.

However, that doesn't seem to reach down into Flight. When I attempt to
send a schema through flight that has a Dictionary<UInt8, Utf8> it throws
an error when attempting to convert from the Rust type to the Flatbuffer
field type. I figured I'd take a swing at adding that to convert.rs here:
https://github.com/apache/arrow/blob/master/rust/arrow/src/ipc/convert.rs#L319

However, when I look at the definitions in Schema.fbs and the related
generated Rust file, Dictionary isn't a type there. Should I be sending
this down as some other composed type? And if so, how does this look at the
client side of things? In my test I'm connecting to the Flight server via
PyArrow and working with it in Pandas so I'm hoping that it will be able to
consume Dictionary fields.

Separately, the Rust field type doesn't have a spot for the dictionary ID,
which I assume I'll need to send down so it can be consumed on the client.
Would appreciate any thoughts on that. A little push in the right direction
and I'll be happy to submit a PR to help push the Rust Flight
implementation farther along.

Thanks,
Paul

Reply via email to