Hi Quanlong and Pranav,

Thanks for reporting this issue and providing an example! We are currently 
working on unquoted decimal support for our JSON parser. It should be done 
within a few days. I will send you an update once it’s ready.

Best regards,
Jin


> 2022年9月26日 20:12,Quanlong Huang <[email protected]> 写道:
> 
> FWIW, here is an example to reproduce the issue: 
> https://github.com/stiga-huang/arrow-helloworld 
> <https://github.com/stiga-huang/arrow-helloworld>
> 
> It seems the cpp lib expects JSON decimals represented as strings (quoted) 
> instead of numbers (unquoted):
> https://github.com/apache/arrow/blob/release-8.0.0/cpp/src/arrow/json/parser.cc#L107
>  
> <https://github.com/apache/arrow/blob/release-8.0.0/cpp/src/arrow/json/parser.cc#L107>
> 
> Decimal128Type is a subclass of DecimalType which extends 
> FixedSizeBinaryType. So the expected type is kString. It'd be nice if someone 
> can confirm this, i.e. currently the cpp arrow lib can only read JSON 
> decimals represented as strings.
> 
> Note that Hive writes decimals as (unquoted) numbers in JSON. So reading 
> unquoted decimals in JSON is an important feature for us.
> 
> Thanks,
> Quanlong
> 
> 
> 
> 
> 
> 
> 
> On Thu, Sep 22, 2022 at 9:28 PM Pranav Yogi Lodha <[email protected] 
> <mailto:[email protected]>> wrote:
> All the values are unquoted.
> 
> On Thu, 22 Sept 2022, 18:55 Antoine Pitrou, <[email protected] 
> <mailto:[email protected]>> wrote:
> On Thu, 22 Sep 2022 16:43:58 +0530
> Pranav Yogi Lodha <[email protected] 
> <mailto:[email protected]>> wrote:
> > The json scanner would be used for impala and this is the error that's
> > shown when unquoted values are read:
> > 
> > ERROR: JSON parse error: Column(/age) changed from string to number in row 0
> > 
> > Age is decimal type column. I and my team have been stuck on this for a
> > while, any pointers would be highly appreciated.
> 
> This probably means you've got mixed types in the JSON column. Some
> values are quoted, some are not. Is that right?
> 
> 

Reply via email to