【问题标题】:how to use ascii character for quote in COPY in cqlsh如何在 cqlsh 中的 COPY 中使用 ascii 字符进行引用
【发布时间】:2013-07-18 00:04:55
【问题描述】:

我正在使用 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 字符作为引号参数..

提前致谢

【问题讨论】:

    标签: csv cassandra sqlbulkcopy cql3 cqlsh


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,并检查了 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。

      【讨论】:

        猜你喜欢
        • 2015-09-19
        • 1970-01-01
        • 2018-07-27
        • 2015-04-18
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多