问题描述
我在cassandra中使用了复制命令:
copY table_name TO 'path/file.csv' with HEADER = TRUE;
在csv中复制后,其中一个单元格值(它是很长的字符串)被打碎并散布在相邻的单元格中,在另一列下重叠。
需要解决方案才能正确暗示这一点。
解决方法
其中一个单元格值(它是一个很长的字符串)被打散并散布在相邻单元格的另一列下重叠。
听起来像单元格值可能包含逗号,导致其被过早拆分。尝试使用其他定界符。例如,如果您的文本数据不包含管道,则此方法应该起作用:
COPY table_name TO 'path/file.csv' with DELIMITER='|' AND HEADER = TRUE;
,
我建议不要使用DSBulk工具来将数据导入CSV和JSON或从CSV和JSON导入数据,而不是使用功能有限的COPY
命令。格式-已针对快速数据导出/导入进行了大量优化,并且可配置性强。可能很简单(CSV是默认格式):
dsbulk unload -k keyspace -t table -url filename
您可以控制要导出的列,将数据存储在压缩文件中等等。有关示例,请参见以下博客文章:
- https://www.datastax.com/blog/2019/03/datastax-bulk-loader-introduction-and-loading
- https://www.datastax.com/blog/2019/04/datastax-bulk-loader-more-loading
- https://www.datastax.com/blog/2019/04/datastax-bulk-loader-common-settings
- https://www.datastax.com/blog/2019/06/datastax-bulk-loader-unloading
- https://www.datastax.com/blog/2019/07/datastax-bulk-loader-counting
- https://www.datastax.com/blog/2019/12/datastax-bulk-loader-examples-loading-other-locations