Repository navigation
Commit 7830bfb
feat: add dictionary_columns parameter to Table.scan() for memory-efficient reads
Columns that contain large or frequently repeated strings (e.g. JSON
blobs, low-cardinality categoricals) can exhaust memory when PyArrow
loads them as plain string arrays. PyArrow's Parquet reader supports
reading such columns as dictionary-encoded arrays, which deduplicates
values and can dramatically reduce memory usage.
Add a dictionary_columns: tuple[str, ...] parameter to Table.scan()
(and the underlying TableScan / ArrowScan classes) that is forwarded
to _get_file_format() as PyArrow's dictionary_columns kwarg. Only
applies to Parquet files; silently ignored for ORC.
Usage:
table.scan(dictionary_columns=("payload",)).to_arrow()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 0695f07 commit 7830bfb
3 files changed
Lines changed: 114 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1625 | 1625 | | |
1626 | 1626 | | |
1627 | 1627 | | |
| 1628 | + | |
1628 | 1629 | | |
1629 | | - | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
1630 | 1634 | | |
1631 | 1635 | | |
1632 | 1636 | | |
| |||
1729 | 1733 | | |
1730 | 1734 | | |
1731 | 1735 | | |
| 1736 | + | |
1732 | 1737 | | |
1733 | 1738 | | |
1734 | 1739 | | |
| |||
1738 | 1743 | | |
1739 | 1744 | | |
1740 | 1745 | | |
| 1746 | + | |
1741 | 1747 | | |
1742 | 1748 | | |
1743 | 1749 | | |
| |||
1748 | 1754 | | |
1749 | 1755 | | |
1750 | 1756 | | |
| 1757 | + | |
| 1758 | + | |
1751 | 1759 | | |
1752 | 1760 | | |
1753 | 1761 | | |
| |||
1756 | 1764 | | |
1757 | 1765 | | |
1758 | 1766 | | |
| 1767 | + | |
1759 | 1768 | | |
1760 | 1769 | | |
1761 | 1770 | | |
| |||
1866 | 1875 | | |
1867 | 1876 | | |
1868 | 1877 | | |
| 1878 | + | |
1869 | 1879 | | |
1870 | 1880 | | |
1871 | 1881 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1219 | 1219 | | |
1220 | 1220 | | |
1221 | 1221 | | |
| 1222 | + | |
1222 | 1223 | | |
1223 | 1224 | | |
1224 | 1225 | | |
| |||
1245 | 1246 | | |
1246 | 1247 | | |
1247 | 1248 | | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
1248 | 1257 | | |
1249 | 1258 | | |
1250 | 1259 | | |
| |||
1260 | 1269 | | |
1261 | 1270 | | |
1262 | 1271 | | |
| 1272 | + | |
1263 | 1273 | | |
1264 | 1274 | | |
1265 | 1275 | | |
| |||
1775 | 1785 | | |
1776 | 1786 | | |
1777 | 1787 | | |
| 1788 | + | |
1778 | 1789 | | |
1779 | 1790 | | |
1780 | 1791 | | |
| |||
1809 | 1820 | | |
1810 | 1821 | | |
1811 | 1822 | | |
| 1823 | + | |
1812 | 1824 | | |
1813 | 1825 | | |
1814 | 1826 | | |
| |||
1822 | 1834 | | |
1823 | 1835 | | |
1824 | 1836 | | |
| 1837 | + | |
1825 | 1838 | | |
1826 | 1839 | | |
1827 | 1840 | | |
| |||
1833 | 1846 | | |
1834 | 1847 | | |
1835 | 1848 | | |
| 1849 | + | |
1836 | 1850 | | |
1837 | 1851 | | |
1838 | 1852 | | |
| |||
2072 | 2086 | | |
2073 | 2087 | | |
2074 | 2088 | | |
2075 | | - | |
2076 | | - | |
2077 | | - | |
2078 | | - | |
2079 | | - | |
2080 | | - | |
2081 | | - | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
2082 | 2094 | | |
2083 | 2095 | | |
2084 | 2096 | | |
| |||
2224 | 2236 | | |
2225 | 2237 | | |
2226 | 2238 | | |
2227 | | - | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
| 2245 | + | |
2228 | 2246 | | |
2229 | 2247 | | |
2230 | 2248 | | |
| |||
2244 | 2262 | | |
2245 | 2263 | | |
2246 | 2264 | | |
2247 | | - | |
| 2265 | + | |
| 2266 | + | |
| 2267 | + | |
| 2268 | + | |
| 2269 | + | |
| 2270 | + | |
| 2271 | + | |
2248 | 2272 | | |
2249 | 2273 | | |
2250 | 2274 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5103 | 5103 | | |
5104 | 5104 | | |
5105 | 5105 | | |
| 5106 | + | |
| 5107 | + | |
| 5108 | + | |
| 5109 | + | |
| 5110 | + | |
| 5111 | + | |
| 5112 | + | |
| 5113 | + | |
| 5114 | + | |
| 5115 | + | |
| 5116 | + | |
| 5117 | + | |
| 5118 | + | |
| 5119 | + | |
| 5120 | + | |
| 5121 | + | |
| 5122 | + | |
| 5123 | + | |
| 5124 | + | |
| 5125 | + | |
| 5126 | + | |
| 5127 | + | |
| 5128 | + | |
| 5129 | + | |
| 5130 | + | |
| 5131 | + | |
| 5132 | + | |
| 5133 | + | |
| 5134 | + | |
| 5135 | + | |
| 5136 | + | |
| 5137 | + | |
| 5138 | + | |
| 5139 | + | |
| 5140 | + | |
| 5141 | + | |
| 5142 | + | |
| 5143 | + | |
| 5144 | + | |
| 5145 | + | |
| 5146 | + | |
| 5147 | + | |
| 5148 | + | |
| 5149 | + | |
| 5150 | + | |
| 5151 | + | |
| 5152 | + | |
| 5153 | + | |
| 5154 | + | |
| 5155 | + | |
| 5156 | + | |
| 5157 | + | |
| 5158 | + | |
| 5159 | + | |
| 5160 | + | |
| 5161 | + | |
| 5162 | + | |
| 5163 | + | |
| 5164 | + | |
| 5165 | + | |
| 5166 | + | |
| 5167 | + | |
| 5168 | + | |
| 5169 | + | |
| 5170 | + | |
| 5171 | + | |
| 5172 | + | |
| 5173 | + | |
| 5174 | + | |
| 5175 | + | |
0 commit comments