加载含字符串与数值的CSV数据到Apache Ignite失败问题咨询
Apache Ignite CSV导入错误解决
问题根因
报错提示count_opening字段无法完成从字符串到整数的类型转换,核心原因有两点:
- Ignite的
COPY命令默认CSV文件的字段分隔符为英文逗号,,而你提供的CSV文件使用竖线|作为分隔符,导致Ignite无法正确拆分每行的字段,count_opening对应位置拿到的不是预期的数值内容,触发转换失败。 - 你的CSV文件包含首行表头,如果未指定跳过表头的参数,Ignite会将表头行作为普通数据导入,表头中
count_opening是纯字符串,也会触发类型转换错误。
解决方案
直接修改COPY命令,显式指定分隔符和跳过表头参数即可,修改后的命令如下:
copy from '/home/kkn/data/sample_data_pk.csv' into SAMPLE_DATA_PK(SID,ID_status,active,count_opening,count_updated,ID_caller,opened_time,created_at,type_contact,location,support_incharge,pk) format csv delimiter '|' header true;
参数说明:
delimiter '|':指定字段分隔符为竖线,与CSV文件格式匹配header true:告知Ignite跳过CSV第一行的表头内容,不将其作为数据导入
如果不想修改导入命令,也可以提前对CSV文件做预处理:将所有竖线分隔符替换为英文逗号,删除首行表头后再执行原来的COPY命令。
内容的提问来源于stack exchange,提问作者Karthik Nandagiri
相关产品推荐
相关产品推荐

