#12599·dask

在 shuffle 路径上,索引连接与多个索引列失败: "列重叠,但未指定后缀: MultiIndex([('_partitions', '')])"

作者: fbunt创建于 2026年9月16日更新于 2026年9月16日
标签needs triage

描述问题

在索引上连接两个 dask DataFrame 会引发以下错误:

ValueError: columns overlap but no suffix specified: MultiIndex([('_partitions', '')])

当两个 DataFrame 都具有 MultiIndex 列且右侧具有两个或更多具有未知分割的分区时。这种组合将连接降低到 hash-shuffle 合并路径(RearrangeByColumn)。shuffle 会分配一个辅助“_partitions”列,但对于具有 MultiIndex 列的 pandas,它将该标签存储为元组 _partitions())。drop-back 步骤将标签与普通字符串进行比较,因此辅助列永远不会被删除,在两侧都达到最终的每个分区的 pandas.merge,并发生冲突。