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]

Reply via email to