An option was recently added to dictionary encode all string columns

https://github.com/apache/arrow/blob/master/cpp/src/arrow/csv/options.h#L82

I think it would be useful to be able to hard-opt-in to
dictionary-encode a particular column (regardless of the what
cardinality ends up being). Whatever the way to do this, it should be
clear and well documented. A new JIRA issue may be in order. Antoine,
what do you think?

On Sun, Dec 1, 2019 at 5:32 PM ntfs hard <ntfs.h...@gmail.com> wrote:
>
> Hello
>
> I'm a newcomer and not quite sure about the library usage. I tried to find
> some documentation about it but failed.
>
> I have a dataset in CSV file where one column(let's call it colour) is a
> string category. I'd like to get indices instead of text_lines to pass it
> inside algorithm.
> I tried to set column_types in ConvertOptions in
> {{"colour", arrow::dictionary(std::make_shared<arrow::Int32Type>(),
> arrow::utf8()) }} but it seems to be not right api usage, a wild run-time
> error appears: NotImplemented: CSV conversion to dictionary<values=string,
> indices=int32, ordered=0> is not supported
> Also I find a merged PR #5785 <https://github.com/apache/arrow/pull/5785> but
> not quite sure that's applicable for my case.
>
> So, my question is: can I get indices inside a category column only w/
> library API. And if yes, what I doing wrong. :)
>
> *In other word,* I'd like to something like such python pandas code:
> df[column] = df[column].cat.codes # if str(column_data_type) == "category"
>
> Thank you!

Reply via email to