COPIAR tabela cassandra do arquivo csv

Estou configurando um cenário de demonstração para Cassandra, Apache Spark e Flume no meu Mac (Mac OS X Yosemite com Oracle jdk1.7.0_55). O cenário deve funcionar como prova de conceito para uma nova plataforma de análise e, portanto, preciso de alguns dados de teste no meu cassandra db. Estou usando o cassandra 2.0.8.

Criei alguns dados de demonstração no Excel e os exportei como um arquivo CSV. A estrutura é assim:

ProcessUUID;ProcessID;ProcessNumber;ProcessName;ProcessStartTime;ProcessStartTimeUUID;ProcessEndTime;ProcessEndTimeUUID;ProcessStatus;Orderer;VorgangsNummer;VehicleID;FIN;Reference;ReferenceType
0F0D1498-D149-4FCC-87C9-F12783FDF769;AbmeldungKl‰rfall;1;Abmeldung Kl‰rfall;2011-02-03 04:05+0000;;2011-02-17 04:05+0000;;Finished;SIXT;4278;A-XA 1;WAU2345CX67890876;KLA-BR4278;internal

Criei um espaço de chave e uma família de colunas no cqlsh usando:

CREATE KEYSPACE dadcargate 
WITH REPLICATAION  = { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };

use dadcargate;

CREATE COLUMNFAMILY Process (
  ProcessUUID uuid, ProcessID varchar, ProcessNumber bigint, ProcessName varchar, 
  ProcessStartTime timestamp, ProcessStartTimeUUID timeuuid, ProcessEndTime timestamp, 
  ProcessEndTimeUUID timeuuid, ProcessStatus varchar, Orderer varchar,
  VorgangsNummer varchar, VehicleID varchar, FIN varchar, Reference varchar,
  ReferenceType varchar, 
PRIMARY KEY (ProcessUUID))
WITH COMMENT='A process is like a bracket around multiple process steps';

O nome da família da coluna e todas as colunas nele criadas com todas as letras minúsculas - terão que investigar isso também algum dia, mas isso não é tão relevante no momento.

Agora, pego meu arquivo CSV, que possui cerca de 1600 entradas e quero importá-lo na minha tabela chamadaprocess como isso:

cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname, 
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid,
fin, reference, referencetype) 
FROM 'Process_BulkData.csv' WITH DELIMITER = ';' AND HEADER = TRUE;

Dá o seguinte erro:

Record #0 (line 1) has the wrong number of fields (15 instead of 13).
0 rows imported in 0.050 seconds.

O que é essencialmente verdadeiro, como eu NÃO tenho os campos timeUUID em meu cvs-export.

Se eu tentar o comando COPY sem nomes de colunas explícitos como este (dado o fato de que, na verdade, sinto falta de dois campos):

cqlsh:dadcargate> COPY process from 'Process_BulkData.csv' 
WITH DELIMITER = ';' AND HEADER = TRUE;

Acabo com outro erro:

Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.009 seconds.

Hum. Meio estranho, mas tudo bem. Talvez o comando COPY não goste do fato de haver dois campos ausentes. Eu ainda acho isso estranho, pois os campos ausentes estão lá (do ponto de vista estrutural), mas apenas vazios.

Ainda tenho outra chance: apaguei as colunas ausentes no excel, exportei o arquivo novamente como cvs e tente importar SEM linha de cabeçalho nos meus nomes de coluna explícitos csv MAS explícitos, assim:

cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname, 
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid, 
fin, reference, referencetype) 
FROM 'Process_BulkData-2.csv' WITH DELIMITER = ';' AND HEADER = TRUE;

Eu recebo este erro:

Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.034 seconds.

Alguém pode me dizer o que estou fazendo de errado aqui? De acordo comdocumentação do comando de cópia, da maneira como configuro meus comandos, deve funcionar para pelo menos dois deles. Ou assim eu pensaria.

Mas não, obviamente estou perdendo algo importante aqui.

questionAnswers(2)

yourAnswerToTheQuestion