Cassandra:无法从csv导入空值

时间:2016-06-03 19:31:01

标签: string import null cassandra cqlsh

我正在尝试将csv文件导入Cassandra。 csv文件是从Postgres生成的,它包含一些空值。

Cassandra版本:

  

[cqlsh 5.0.1 |卡桑德拉3.5 | CQL规范3.4.0 |原生协议v4]

我正在使用此查询导入:

  

复制报告   (ID,姓名,USER_ID,USER_NAME,template_id,gen_epoch,exp_epoch,FILE_NAME,格式,refile_size,is_sch,JOB_ID,状态,STATUS_MSG)   来自' /home/reports.csv'用NULL =''和header = true和DELIMITER =   '&#39 ;;

我一直收到这个错误:

  

无法导入66行:ParseError - int()的文字无效   基数10:'',放弃而不重试

但是,当我将所有空值更改为某个随机值时,我能够使用相同的命令导入该行。我已经尝试过在互联网上找到的所有解决方案。 请指教。

2 个答案:

答案 0 :(得分:0)

这看起来像一个Cassandra bug(见https://issues.apache.org/jira/browse/CASSANDRA-11549)。我无法找到让Cassandra接受空值的方法。您可能必须坚持使用解决方法,现在替换空值的一些标记值。

答案 1 :(得分:0)

您可以在CSV中仅输入空白字段。 即我想将数据库中的值重写为null-我可以执行以下操作:

cqlsh$> copy my_table(id,value_column1,value_column2) from 'myimport.csv';

在myimport.csv中将有

1234,,3

像这样,value_column1的值为'null'。