GayathriSrividya commented on code in PR #3461:
URL: https://github.com/apache/iceberg-python/pull/3461#discussion_r3433673039
##########
pyiceberg/io/pyarrow.py:
##########
@@ -1756,6 +1764,7 @@ def __init__(
self._case_sensitive = case_sensitive
self._limit = limit
self._downcast_ns_timestamp_to_us =
Config().get_bool(DOWNCAST_NS_TIMESTAMP_TO_US_ON_WRITE)
+ self._dictionary_columns = frozenset(dictionary_columns)
Review Comment:
Thanks for raising this. Agree this is primarily beneficial for
low-cardinality string columns, and likely less so for very high-cardinality
payloads like large JSON where dictionary fallback can happen.
On Arrow decoding: when a Parquet column is read as a DictionaryArray,
repeated values are represented as integer indices into a shared dictionary
buffer, so the value bytes are not duplicated per row. In this PR, we only pass
through the dictionary_columns hint; whether the column remains
dictionary-encoded is still determined by Arrow/Parquet behavior and the data
itself.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]