docker 中 cassandar 中的 COPY 命令返回错误;无法导入 0 行:IOError - 无法打开“fma_dataset.csv”进行读取:找不到匹配的文件

问题描述

我想将数据从 csv 导入到 docker 中 cassandra 中的键空间。所以我一步一步使用这个命令:

docker run --name my-cassandra --network some-network -d cassandra:latest
docker cp fma_dataset.csv my-cassandra:fma_dataset.csv
docker run -it --network some-network --rm cassandra cqlsh my-cassandra
CREATE KEYSPACE fma
           WITH replication = {'class': 'SimpleStrategy','replication_factor' : 1};
CREATE TABLE fma_test (
track_id text PRIMARY key,title_track text,date_released text,title_album text,artist text,duration text,genre text,favorites_artist text,listens_track text,favorites_track text,listens_album text,favorites_album text,);

copY fma_test 
(track_id,title_track,date_released,title_album,artist,duration,genre,favorites_artist,listens_track,favorites_track,listens_album,favorites_album) 
FROM 'fma_dataset.csv' WITH HEADER=TRUE;
 But I get this error: 
Failed to import 0 rows: IOError - Can't open 'fma_dataset.csv' for reading: no
matching file found,given up after 1 attempts

我需要提醒您,文件在容器中,并且在路径中已正确复制。 请帮忙;谢谢

解决方法

您可以使用 -v 设置挂载点,该挂载点指向您的服务器/计算机。 在那里您可以更轻松地传输文件。
示例:
docker run --name my-cassandra --network some-network -v /path/on/your/server:/path/in/your/docker/container -d cassandra:latest

这样Cassandra就可以访问这个位置的所有文件(当然文件的权限也要相应设置)。删除容器后,这些文件也会保留(如果服务要上线,我总是建议这样做)。

多多问候