Skip to content

Commit 43c83ee

Browse files
authored
Raise better error for repartition on divisions with unknown divisions (#980)
1 parent 868f1b4 commit 43c83ee

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

dask_expr/_repartition.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ def _lower(self):
116116
elif self.new_divisions:
117117
if tuple(self.new_divisions) == self.frame.divisions:
118118
return self.frame
119+
elif self.frame.divisions[0] is None:
120+
raise ValueError(
121+
"Cannot repartition on divisions with unknown divisions"
122+
)
119123
return RepartitionDivisions(self.frame, self.new_divisions, self.force)
120124
elif self.partition_size is not None:
121125
return RepartitionSize(self.frame, partition_size=self.partition_size)

dask_expr/tests/test_repartition.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,12 @@ def test_repartition_filter_pushdown():
131131
expected = df[["x", "y"]]
132132
expected = expected[expected.x > 5.0].repartition(npartitions=5)
133133
assert result.simplify()._name == expected.simplify()._name
134+
135+
136+
def test_repartition_unknown_divisions():
137+
pdf = pd.DataFrame({"x": [1, 2, 3, 4, 5, 6, 7, 8] * 10, "y": 1, "z": 2})
138+
df = from_pandas(pdf, npartitions=5).clear_divisions()
139+
with pytest.raises(
140+
ValueError, match="Cannot repartition on divisions with unknown divisions"
141+
):
142+
df.repartition(divisions=(0, 100)).compute()

0 commit comments

Comments
 (0)