Diego Argueta created ARROW-4885:
------------------------------------

             Summary: [Python] read_csv() can't handle decimal128() columns
                 Key: ARROW-4885
                 URL: https://issues.apache.org/jira/browse/ARROW-4885
             Project: Apache Arrow
          Issue Type: Bug
          Components: Python
    Affects Versions: 0.12.1
         Environment: Python: 3.7.2, 2.7.15
PyArrow: 0.12.1
OS: MacOS 10.13.4 (High Sierra)
            Reporter: Diego Argueta


h1. Summary

CSV cannot use {{Decimal128Type}}. The cause is that there's no converter 
listed 
[here|https://github.com/apache/arrow/blob/master/cpp/src/arrow/csv/converter.cc#L301-L315].
 I haven't tested it yet but I suspect adding the following line _might_ fix it:

{code:c++}
CONVERTER_CASE(Type::DECIMAL, NumericConverter<Decimal128Type)
{code}

h1. To Reproduce

1) First, create a CSV file like so and save it somewhere:

{code}
Header
123.45
{code}

2) Run the following code on Python 2 or 3:

{code:python}
import pyarrow.csv as pa_csv
import pyarrow as pa
import io

types = {'Header': pa.decimal128(11, 2)}
convert_options = pa_csv.ConvertOptions(column_types=types)
pa_csv.read_csv('/Users/diegoargueta/Desktop/test.csv', 
convert_options=convert_options)
{code}

read_csv() crashes with the following exception:

{code}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pyarrow/_csv.pyx", line 397, in pyarrow._csv.read_csv
  File "pyarrow/error.pxi", line 89, in pyarrow.lib.check_status
pyarrow.lib.ArrowNotImplementedError: CSV conversion to decimal(11, 2) is not 
supported

CSV conversion to decimal(11, 2) is not supported
{code}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to