You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dask调用read_sql_table生成额外time__1列的必要性及处理方案问询

问题原因说明

你遇到的time__1重复列是Dask的列名去重机制导致的:你指定了time作为索引列,但Dask默认会读取SQL表的所有字段作为普通列,两个重名的time字段同时存在时,Dask就会把普通列的time重命名为time__1,这列的内容和索引列完全一致,属于冗余数据。


对应问题解答

  • 是否为必要字段?
    不是必要字段,属于完全重复的冗余数据。
  • 能否直接删除且无负面影响?
    可以直接删除,不会产生任何副作用。后续需要用到时间字段时直接读取DataFrame的索引即可,不影响任何计算、导出、持久化操作,删除示例代码如下:
dd_ticks = dd_ticks.drop("time__1", axis=1)
  • 调用dd.read_sql_table阶段是否可以避免生成?
    可以,只要在调用时通过columns参数显式指定你需要读取的普通列,不要把已经设为索引的time列包含在内即可,示例代码如下:
dd_ticks = dd.read_sql_table(
    table_name="ticks",
    con=sql_uri,
    index_col="time",
    columns=["symbol", "price", "volume"]
)

指定后Dask只会拉取你指定的三个普通列,加上索引列time,不会出现重复的time__1列。


内容的提问来源于stack exchange,提问作者hg628193hg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:30:03