我正在尝试将csv文件导入Cassandra。csv 文件是从 Postgres 生成的,它包含一些空值。
卡桑德拉版本:
[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='' 和标头 = true 和分隔符 = ',';
我不断收到此错误:
导入 66 行失败:ParseError - int() 的文字无效 基数 10:",未经重试就放弃
但是,当我将所有 null 值更改为某个随机值时,我能够使用相同的命令导入该行。我已经尝试了我在互联网上找到的所有解决方案。请指教。
您可以在 CSV 中只放置空字段。即我想将数据库中的值重写为 null - 我可以执行以下操作:
cqlsh$> copy my_table(id,value_column1,value_column2) from 'myimport.csv';
在我的导入.csv中,将有
1234,,3
像这样,value_column1
将具有"空"值。
看起来像一个Cassandra错误(见 https://issues.apache.org/jira/browse/CASSANDRA-11549)。我一直无法找到让卡桑德拉接受空值的方法。现在您可能必须坚持使用一种解决方法,将一些哨兵值替换为空值。