Polars Hash-Shuffles Rows Between Streaming Stages
Rows are partitioned by hash(key) into N buckets, so equal keys always land in the same bucket. Each bucket is aggregated or joined independently, which is a shuffle instead of a …
Rows are partitioned by hash(key) into N buckets, so equal keys always land in the same bucket. Each bucket is aggregated or joined independently, which is a shuffle instead of a …
The streaming engine never moves a whole DataFrame between operators. It moves a Morsel — a fixed-size slice of rows with a sequence number — over rendezvous channels, and a …
Polars does not compare subtrees with a recursive equality check. It hashes each plan node together with the canonical ids of its children, interns the result in a hash table of …
Simplification is not a separate optimizer pass in Polars but a rewrite rule that runs interleaved with type coercion during conversion, using a context flag that tells the rule …
The filter is not a special case in the Parquet reader. Polars compiles the same expression tree a second time into a predicate over a synthetic frame of col_min / col_max / col_nc …