FWIW, here is an example to reproduce the issue: 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 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]> wrote: > All the values are unquoted. > > On Thu, 22 Sept 2022, 18:55 Antoine Pitrou, <[email protected]> wrote: > >> On Thu, 22 Sep 2022 16:43:58 +0530 >> Pranav Yogi Lodha <[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? >> >> >>
