These code examples both work for me in 0.15.0 and master. What
version of the project are you using?

In [6]: pa.array(data1).type
Out[6]: Decimal128Type(decimal(14, 2))

In [7]: pa.table([data1], schema=sss1)
Out[7]:
pyarrow.Table
decimal_col: decimal(22, 2)

On Fri, Oct 25, 2019 at 8:46 AM Дима Фомин <[email protected]> wrote:
>
> Hello, Micah!
>
> Gotcha! Seems the problem in in pyarrow.array() handling of decimal values.
>
> data1 = [decimal.Decimal('234234234234.43')]
>
> #pa.array somehow broke precision and scale?
> data2 = pa.array(data1)
>
> sss1 = pa.schema({'decimal_col': pa.decimal128(22,2)})
>
> pa.Table.from_arrays([data1], schema=sss1)
>
> is OK
>
> bur this one
> pa.Table.from_arrays([data2], schema=sss1)
>
> raise ArrowNotImplementedError: No cast implemented from decimal(14, 2) to 
> decimal(22, 2)
>
> see it here
> https://colab.research.google.com/drive/1ejOyFBVs8GPFTosuRMDyTwPvt4145rgV
>
> Should I post in to JIRA as well? Or this is the same reason posted above?
>
>
> 25.10.2019, 08:00, "Micah Kornfield" <[email protected]>:
>
> Hi Dima,
> Thanks for finding this bug would you mind filing a JIRA 
> (https://issues.apache.org/jira).
>
> Note that this code works fine if  you put quotes around the decimal value 
> (e.g. Decimal('123.234')), but as you state it crashes python because the 
> Decimal created without quotes requires more then 38 decimal places to 
> represent.
>
> Thanks,
> Micah
>
>
>
> On Thu, Oct 24, 2019 at 7:53 AM Дима Фомин <[email protected]> wrote:
>
> Digging this I just found that this code breaks my Python Kernel :(
>
> import sqlalchemy as sq
> import pyarrow as pa
>
> aaa, bbb = sq.sql.sqltypes.decimal.Decimal(123.234), 
> sq.sql.sqltypes.decimal.Decimal(123.234)
> ddd = [aaa, bbb]
> pa.array(ddd)
>
> So seems pyarrow.array is limited with types of array elements, doesnt'it?
>
> WBR,
> Dima Fomin
>
> 24.10.2019, 15:47, "Dima Fomin" <[email protected]>:
>
> Hello!
> First of all thank you very much for your efforts on Apache Arrow! This looks 
> very useful and prominent tech to be able use it in self-BI area.
>
> I faced such issues - get Subj Error
>
> ArrowNotImplementedError: No cast implemented from decimal(2,2) to 
> decimal(12,2)
>
> when trying to pyarrow.Table.from_batches array of values defined in schema 
> as pyarrow.decimal128(12,2).
>
> Which values are in fact column of 
> sqlAlchemy.sql.sqltypes.DECIMAL()="DECIMAL(precision=12,scale=2)" values, 
> which I map in schema like this pyarrow.decimal128(12,2).
>
> What could be a reason of issue?
> Could it be that somehow declared decimal type of data is reduced to minimum 
> value which met in data? :/
>
> With best regards,
> Dima Fomin

Reply via email to