列禁用的Cassandra数据加载序列

时间:2016-12-21 12:48:19

标签: cassandra cqlsh

我是cassandra的新手。我用主键创建了下面的cassandra表。

创建表格查询:

create table DB.EMP(
Name    text,
age       int,
id  int,
loc  text,
salary     double,
PRIMARY KEY (id,salary)
);

我使用命令

在上面的表中加载了以下数据
Command ::: copy emp from '/home/data' with delimiter=',';

Data ::: /home/data 

"Sdd,25,123,Chennai,28000" 

我收到此错误:

Using 1 child processes

Starting copy of pmm.emp with columns ['id', 'salary', 'age', 'loc', 'name'].
Failed to import 1 rows: ParseError - invalid literal for int() with base 10: 'Sdd' -  given up without retries
Failed to process 1 rows; failed rows written to import_db_emp.err
Processed: 0 rows; Rate:       0 rows/s; Avg. rate:       0 rows/s
0 rows imported from 1 files in 0.170 seconds (0 skipped).

请建议我如何加载数据。

除了主键,我有什么办法可以禁用字母顺序插入选项。

1 个答案:

答案 0 :(得分:1)

  

我有什么办法可以禁用除主键之外的字母顺序插入选项吗?

没有。 Cassandra以确保正确的磁盘顺序的方式存储列名称。

一个简单的解决方案是在COPY命令中指定列顺序:

aploetz@cqlsh:stackoverflow> COPY emp (name,age,id,loc,salary) 
                               FROM '/home/aploetz/data.txt' WITH DELIMITER=',';

Reading options from the command line: {'delimiter': ','}
Using 1 child processes

Starting copy of stackoverflow.emp with columns [name, age, id, loc, salary].
Processed: 1 rows; Rate:       0 rows/s; Avg. rate:       1 rows/s
1 rows imported from 1 files in 1.919 seconds (0 skipped).