Cassandra从CSV导入无数据:仅导入三列测试失败排查
解决Cassandra COPY导入0行的问题
首先,你的COPY命令语法本身是没问题的,问题出在测试数据的CSV格式错误——你提供的测试数据里,表头和第一行数据、以及数据行之间都没有用换行分隔,导致Cassandra的COPY工具无法识别出有效的数据行,所以最终导入行数为0。
错误的CSV格式(你的原始数据)
bla,types,location 1,Warning,90 S 1ST ST 2,Warning,730 W STASSNEY LN
这个内容里,表头bla,types,location直接跟第一行数据1,Warning,90 S 1ST ST连在一起,第二行数据2,Warning,730 W STASSNEY LN也和第一行连在一起,没有换行分隔。COPY工具会把整个内容当成一行处理,但这一行的列数和你指定的3列不匹配,所以直接跳过了所有数据。
修正后的正确CSV格式
你需要把CSV调整为每行一条数据,表头单独占一行:
bla,types,location 1,Warning,90 S 1ST ST 2,Warning,730 W STASSNEY LN
重新执行导入
确认文件路径无误、Cassandra进程对该文件有读取权限后,用修正后的CSV重新执行你的导入命令即可:
COPY data.table(bla, types, location) FROM '/home/data/table.csv' WITH DELIMITER = ',' AND HEADER = true;
额外排查点(如果仍有问题)
- 检查CSV文件是否包含隐藏特殊字符(比如Windows格式的
\r\n换行符,若有问题可添加NEWLINE = 'LF'选项) - 确认文件绝对路径正确,避免相对路径导致的找不到文件问题
- 如果后续数据里包含逗号这类分隔符,记得用双引号包裹对应字段(比如
"90 S, 1ST ST")
内容的提问来源于stack exchange,提问作者usr
相关产品推荐
相关产品推荐

