cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip Thompson (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-9217) Problems with cqlsh copy command
Date Mon, 20 Apr 2015 23:50:00 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-9217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Philip Thompson updated CASSANDRA-9217:
---------------------------------------
    Fix Version/s: 2.1.5
           Labels: cqlsh  (was: )

> Problems with cqlsh copy command
> --------------------------------
>
>                 Key: CASSANDRA-9217
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9217
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Brian Cantoni
>            Assignee: Tyler Hobbs
>              Labels: cqlsh
>             Fix For: 2.1.5
>
>
> On the current 2.1 branch I notice a few (possibly related) problems with cqlsh copy
commands. I'm writing them here together but we can separate if there are different causes.
> *1. Cannot import from CSV if column name is 'date'*
> Test file monthly.csv contents:
> {noformat}
> stationid,metric,date
> LAE,barometricpressure,2014-01-01 00:00:00+0000
> LAE,barometricpressure,2014-02-01 00:00:00+0000
> LAE,barometricpressure,2014-03-01 00:00:00+0000
> {noformat}
> Steps:
> {noformat}
> CREATE KEYSPACE IF NOT EXISTS weathercql WITH replication = { 'class': 'SimpleStrategy',
'replication_factor': '1' };
> CREATE TABLE IF NOT EXISTS weathercql.monthly (
>     stationid text,
>     metric text,
>     date timestamp,
>     primary key (stationid, metric, date)
> );
> COPY weathercql.monthly (stationid, metric, date) FROM 'monthly.csv' WITH HEADER='true';
> {noformat}
> Result: the copy command fails unless date is enclosed in double quotes:
> {noformat}
> cqlsh> COPY weathercql.monthly (stationid, metric, date) FROM 'monthly.csv' WITH HEADER='true';
> Improper COPY command.
> cqlsh> COPY weathercql.monthly (stationid, metric, "date") FROM 'monthly.csv' WITH
HEADER='true';
> 3 rows imported in 0.096 seconds.
> {noformat}
> If I instead name the 'date' column as 'datex', it works without quotes.
> The same steps work on Cassandra 2.1.4 (release build).
> *2. Cannot copy to CSV*
> Sample data:
> {noformat}
> create keyspace if not exists test with replication = {'class':'SimpleStrategy', 'replication_factor':1};
> create table if not exists test.kv (key int primary key, value text);
> insert into test.kv (key,value) values (1,'alpha');
> insert into test.kv (key,value) values (2,'beta');
> insert into test.kv (key,value) values (3,'charlie');
> {noformat}
> When you try to export to CSV, it throws what appears to be a Python error, and the file
is not created correctly:
> {noformat}
> cqlsh> copy test.kv (key,value) to 'test.csv';
> global name 'meter' is not defined
> {noformat}
> The same steps work on Cassandra 2.1.4 (release build).
> *3. Copy from CSV inside CQL command file doesn't work*
> File kv.csv:
> {noformat}
> key,value
> 1,'a'
> 2,'b'
> 3,'c'
> {noformat}
> File kv.cql:
> {noformat}
> create keyspace if not exists test with replication = {'class': 'SimpleStrategy', 'replication_factor':1};
> create table if not exists test.kv (key int primary key, value text);
> truncate test.kv;
> copy test.kv (key, value) from 'kv.csv' with header='true';
> select * from test.kv;
> {noformat}
> When command file passed to cqlsh, an error is reported on the `copy` command and it
doesn't work:
> {noformat}
> $ bin/cqlsh -f kv.cql
> kv.cql:5:descriptor 'lower' requires a 'str' object but received a 'unicode'
>  key | value
> -----+-------
> (0 rows)
> {noformat}
> The same commands work correctly when run directly inside cqlsh or when executed with
-e option like: {{bin/cqlsh -e "copy test.kv (key, value) from 'kv.csv' with header='true';"}}.
> This third issue appears to also be broken in 2.1.4 and 2.1.3 release builds, but works
in 2.1.2.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message