[
https://issues.apache.org/jira/browse/ARROW-14518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17436366#comment-17436366
]
Kouhei Sutou commented on ARROW-14518:
--------------------------------------
Thanks.
It's not efficient but is the following reasonable as detected scale?
{noformat}
decimals = [
BigDecimal("1.1"),
BigDecimal("1.10"),
BigDecimal("1.111"),
]
decimals.collect {|decimal| decimal.to_s("f").split(".", 2)[1].size}.max # => 3
{noformat}
> [Ruby] ArrayBuilder doesn't work correctly with Decimal
> -------------------------------------------------------
>
> Key: ARROW-14518
> URL: https://issues.apache.org/jira/browse/ARROW-14518
> Project: Apache Arrow
> Issue Type: Bug
> Components: Ruby
> Reporter: Kanstantsin Ilchanka
> Priority: Minor
>
> When trying to convert raw data with decimal values to Arrow::Table error
> received
>
> {code:java}
> Arrow::Table.new(x: [BigDecimal('1.1')])
> ArgumentError: wrong arguments: Arrow::Decimal128ArrayBuilder#initialize():
> available signatures: (data_type:
> interface(Arrow::Decimal128DataType(GArrowDecimal128DataType)))
> {code}
> I guess this is because Decimal128ArrayBuilder expects Decimal128DataType in
> initialiser, however I'm not sure how to correctly and effectively detect
> precision and scale from array of BigDecimal
>
> {code:java}
> Arrow::VERSION
> => "5.0.0"{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)