加载.csv文件时,Cassandra COPY命令永远不会停止

时间:2017-11-20 19:52:31

标签: csv cassandra copy cqlsh

您好,感谢您花时间阅读我的问题。 我有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命令。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在cqlsh COPY命令中,csv中的所有列必须存在于表架构中。

  

在您的情况下,您的csv ukTrafficAADF有29列,但在表first_query中只有3列,这就是为什么它会抛出解析错误。

所以在某种程度上你必须从csv中删除所有未使用的列,然后你可以使用cqlsh copy命令将它加载到cassandra表中