【问题标题】:Cassandra COPY command never stops while loads .csv fileCassandra COPY 命令在加载 .csv 文件时永远不会停止
【发布时间】:2018-05-04 03:24:40
【问题描述】:

您好,感谢您花时间阅读我的问题。 我有 Cassandra cqlsh 的下一个问题:

当我使用 COPY 命令将 .csv 加载到我的表中时,如果我用 ctrl+c 停止它,命令提示符永远不会完成执行并且不会将任何内容加载到表中。

我使用的 .csv 文件来自:https://www.kaggle.com/daveianhickey/2000-16-traffic-flow-england-scotland-wales 特别是来自 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 命令执行相同的操作。

提前致谢。

【问题讨论】:

    标签: csv cassandra copy cqlsh


    【解决方案1】:

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

    在您的情况下,您的 csv ukTrafficAADF 有 29 列,但在表中 first_query 只有 3 列,这就是它引发解析错误的原因。

    因此,您必须以某种方式从 csv 中删除所有未使用的列,然后您可以使用 cqlsh 复制命令将其加载到 cassandra 表中

    【讨论】:

    • 你是对的,没有办法做我想做的事。我做了一个java程序来使用两个文件来解决我的问题。谢谢。
    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 2012-06-08
    • 2014-09-15
    • 2016-09-08
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多