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

Windows 11下Docker部署Cassandra 4.1导入外部CSV失败求助

解决Docker部署Cassandra导入/导出本地CSV的问题

核心原因

Docker容器的文件系统与本地Windows系统完全隔离,容器无法直接访问本地磁盘文件;同理,容器内生成的文件仅存于容器内部,未挂载本地目录时本地无法查看。

具体解决步骤

1. 重置容器(若已启动无挂载的Cassandra)

先停止并删除现有容器,后续重新创建带目录挂载的实例:

# 替换为你的容器名或ID
docker stop cassandra-container
docker rm cassandra-container

2. 创建共享目录并启动带挂载的Cassandra容器

在Windows本地创建共享目录,比如D:\USM\Data Science\CDS 502 Big data storage and management\Assignment\Project\cassandra_shared,然后执行以下命令启动容器,将本地目录挂载到容器内的/shared路径:

docker run -d --name cassandra-container \
  -p 9042:9042 \
  -v D:/USM/Data Science/CDS 502 Big data storage and management/Assignment/Project/cassandra_shared:/shared \
  cassandra:4.1

注意:Windows路径在Docker命令中需将反斜杠\替换为正斜杠/,或使用双反斜杠\\

3. 同步文件到共享目录

将本地的forest area by state.csv复制到刚才创建的cassandra_shared目录,此时容器内的/shared路径就能访问该文件。

4. 使用容器内路径执行导入命令

进入cqlsh后,用容器内的文件路径执行COPY:

COPY data (id)
FROM '/shared/forest area by state.csv' 
WITH HEADER = TRUE;

5. 导出文件到本地的方法

如果要导出CSV到本地,直接指定容器内的/shared路径即可:

COPY data (id) TO '/shared/exported_data.csv' WITH HEADER = TRUE;

导出完成后,本地的cassandra_shared目录就能看到exported_data.csv文件。

临时替代方案(无需重置容器)

如果不想重新创建容器,可通过docker cp将本地文件复制到容器内部:

docker cp "D:\USM\Data Science\CDS 502 Big data storage and management\Assignment\Project\forest area by state.csv" cassandra-container:/tmp/

之后在cqlsh中使用/tmp/forest area by state.csv作为导入路径即可,但这种方式是一次性的,不如挂载目录持久方便。

额外提醒:确保Docker Desktop有权访问本地目录,可在Docker Desktop的Settings > Resources > File Sharing中添加对应盘符或目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:50:19