我正在尝试将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:'',放弃而不重试
但是,当我将所有空值更改为某个随机值时,我能够使用相同的命令导入该行。我已经尝试过在互联网上找到的所有解决方案。 请指教。
答案 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'。