我正在尝试使用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
创建了Keyspace:
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).
我做错了什么?请纠正我。
答案 0 :(得分:0)
最后导入数据。
确保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