-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for reading Decimal128 Parquet columns #2821
Conversation
Previously, when reading a file with a Decimal128 column, Arkouda would silently ignore the column and the data would be dropped. This PR adds the ability to read Decimal128 Parquet columns, but they are cast to float C++ values and stored into a 64-bit `real` Chapel array, so some precision can be lost in the conversion. Longer term, we would like to add support for arbitrary-precision values into Chapel, which would result in a new type, but that would be able to more accurately display Decimal128 values.
Marking as draft as I am realizing some additional checks need to be done in the C++ code that I am unsure of how to do at the moment. |
Capturing some discussion Ben and I were having off-repo: Another option would be to provide support for fixed-size fixed-point values in Chapel, which would be more space-efficient than arbitrary-precision values since no heap storage would be required. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just want to verify that big vs little endian doesn't matter before approving
Previously, when reading a file with a Decimal128 column, Arkouda would silently ignore the column and the data would be dropped. This PR adds the ability to read Decimal128 Parquet columns, but they are cast to float C++ values and stored into a 64-bit
real
Chapel array, so some precision can be lost in the conversion.Longer term, we would like to add support for arbitrary-precision values into Chapel, which would result in a new type, but that would be able to more accurately display Decimal128 values.