1

我正在使用 cqlsh 中的副本将数据从一个大的 .csv 文件上传到 Cassandra。我正在使用 cassandra 1.2 和 CQL 3.0。但是,由于“是我的数据的一部分,我必须使用其他字符来上传我的数据,我需要使用任何扩展的 ASCII 字符。我尝试了各种方法,但都失败了。

以下工作,但需要为我的目的使用扩展的 ascii 字符..

copy (<columnnames>) from <filename> where deleimiter='|' and quote = '"';
copy (<columnnames>) from <filename> where deleimiter='|' and quote = '~';

当我给出quote='ß'时,我收到以下错误:

:"quotechar" 必须是 1 个字符的字符串

请就如何使用扩展的 ASCII 字符作为引用参数提供建议。

提前致谢

4

2 回答 2

0

COPY 文档页面上的注释建议对于批量加载(如您的情况),应使用json2sstable实用程序。然后,您可以使用sstableloader将 sstables 加载到集群中。所以我建议您编写一个脚本/程序来将您的 CSV 转换为 JSON,并将这些工具用于您的大 CSV。JSON 在处理 ASCII 表中的所有字符时不会有任何问题。

于 2013-07-19T13:54:56.223 回答
0

我有一个类似的问题,并检查了 cqlsh 的源代码(它是一个 python 脚本)。就我而言,我是用 python 生成 csv,所以需要找到正确的 python csv 参数。

这是来自 cqlsh 的关键信息:

    csv_dialect_defaults = dict(delimiter=',', doublequote=False,
                            escapechar='\\', quotechar='"')

因此,如果您有幸从 python 生成 .csv 文件,只需使用 csv 模块即可:

    writer = csv.writer(open("output.csv", 'w'), **csv_dialect_defaults)

希望这会有所帮助,即使您不使用 python。

于 2014-09-12T11:43:04.727 回答