您好,感谢您花时间阅读我的问题。 我有Cassandra cqlsh的下一个问题:
当我使用COPY命令将.csv加载到我的表中时,命令提示符永远不会完成执行,如果我用ctrl + c停止它,则不会将任何内容加载到表中。
我正在使用。https://www.kaggle.com/daveianhickey/2000-16-traffic-flow-england-scotland-wales中的.csv文件 特别是来自ukTrafficAADF.csv。
我把代码放在下面:
CREATE TABLE first_query ( AADFYear int, RoadCategory text,
LightGoodsVehicles text, PRIMARY KEY(AADFYear, RoadCategory);
我正在尝试:
COPY first_query (AADFYear, RoadCategory, LightGoodsVehicles) FROM '..\ukTrafficAADF.csv' WITH DELIMITER=',' AND HEADER=TRUE;
这反复给我以下错误:
Failed to import 5000 rows: ParseError - Invalid row length 29 should be 3, given up without retries
永远不会结束。 添加.csv文件包含我需要的更多列,并尝试使用包含未使用列的SKIPCOLS保留字的先前COPY命令。
提前致谢。
答案 0 :(得分:1)
在cqlsh COPY命令中,csv中的所有列必须存在于表架构中。
在您的情况下,您的csv
ukTrafficAADF
有29列,但在表first_query
中只有3列,这就是为什么它会抛出解析错误。
所以在某种程度上你必须从csv中删除所有未使用的列,然后你可以使用cqlsh copy命令将它加载到cassandra表中