【问题标题】:Failed to import 3 rows: ParseError - Invalid row length 1 should be 3, given up without retries导入 3 行失败:ParseError - 无效的行长度 1 应为 3,不重试就放弃
【发布时间】:2023-09-01 08:13:01
【问题描述】:

我正在尝试使用 delimiter='|' 导入 csv 文件。我收到这个重复的错误,我这样挣扎了两天。任何帮助将不胜感激。以下是详细信息。

Cassandra Version:
[cqlsh 5.0.1 | Cassandra 3.0.9 | CQL spec 3.4.0 | Native protocol v4]

这是我的 csv:

row_nr|PRD_ID|X_01

1|3170428144631014|25603.24
2|3170428144632015|25606.24
4|3170428144633017|25602.24

创建的密钥空间:

create keyspace newpqp with replication = {'class:''simplestrategy', 'replication_factor':1};

创建表:

CREATE TABLE againcheckdel(row_nr int primary key,PRD_ID bigint, X_01 decimal);

复制命令:

COPY againcheckdel(row_nr,PRD_ID,X_01) FROM 'C:\Users\skum\Documents\mytrial.csv' WITH  HEADER = 'true' AND DELIMITER = '|';

错误:

cqlsh:samplepqp> COPY againcheckdel(row_nr,PRD_ID,X_01) FROM 'C:\Users\skum\Documents\mytrial.csv' WITH  HEADER = 'true' AND DELIMITER = '|';

Using 7 child processes

Starting copy of samplepqp.againcheckdel with columns [row_nr, prd_id, x_01].
Failed to import 3 rows: ParseError - Invalid row length 1 should be 3,  given up without retries
Failed to process 3 rows; failed rows written to import_samplepqp_againcheckdel.err
Processed: 3 rows; Rate:       2 rows/s; Avg. rate:       3 rows/s
3 rows imported from 1 files in 1.091 seconds (0 skipped).

我做错了什么?请纠正我。

【问题讨论】:

  • 该错误表明您的 csv 文件格式不正确。但你的 csv 文件似乎没问题。您是否导入了正确的文件?
  • 是的,我正在导入正确的文件。你能给我推荐一个正确格式的 csv 吗?
  • @AshrafulIslam 我得到了数据。请看我的回答,非常感谢。

标签: csv cassandra cqlsh


【解决方案1】:

数据终于导入了。

确保 csv 中的列顺序与表中的相同。为此,请遵循以下创建表的语法。

CREATE TABLE fornormal(Unnamed int,row_nr int, PRD_ID bigint, X_01 decimal, primary key (Unnamed, row_nr, PRD_ID, X_01));
cqlsh:samplepqp> select * from fornormal;

 unnamed | row_nr | prd_id | x_01
---------+--------+--------+------

下面是复制命令。

COPY fornormal FROM 'C:\Users\skum\Documents\normalcsv.csv' WITH HEADER = TRUE AND DELIMITER = '|';
Using 7 child processes

Starting copy of samplepqp.fornormal with columns [unnamed, row_nr, prd_id, x_01].
Processed: 941 rows; Rate:     471 rows/s; Avg. rate:     848 rows/s
941 rows imported from 1 files in 1.111 seconds (0 skipped).
cqlsh:samplepqp> select * from fornormal;

 unnamed | row_nr | prd_id           | x_01
---------+--------+------------------+---------
     769 |    770 | 3170428150618780 | 25606.7
      23 |     24 | 3170428144646030 | 25601.9
     114 |    115 | 3170428145810120 | 25600.3

【讨论】: