CQLSH COPY ERROR TypeError: объект 'int' не повторяется - PullRequest
0 голосов
/ 09 ноября 2018

Ниже приведен код, пытающийся вывести данные таблицы, но ниже ошибка TypeError: объект 'int' не повторяется.

import argparse
    import sys
    import itertools
    import codecs
    import uuid
    import os

    try:
        import cassandra
        import cassandra.concurrent
    except ImportError:
        sys.exit('Python Cassandra driver not installed. You might try \"pip install cassandra-driver\".')
    from cassandra.cluster import Cluster, ResultSet
    from cassandra.policies import DCAwareRoundRobinPolicy
    from cassandra.auth import PlainTextAuthProvider
    from cassandra.cluster import ConsistencyLevel

    datafile = "/Users/username/adf.csv"

    if os.path.exists(datafile):
        os.remove(datafile)
    def dumptableascsv():
        auth_provider = PlainTextAuthProvider(username='cassandra', password='cassandra')
        cluster = Cluster(['127.0.0.1'],
                          load_balancing_policy=DCAwareRoundRobinPolicy(local_dc='Cassandra'),
                          port=9042, auth_provider=auth_provider)
        session = cluster.connect('qualys_ioc')
        session.execute("COPY qualys_ioc.agent_delta_fragment(agent_id , delta_id , fragment_id, boolean ,created_on)  TO "
                        "'/Users/username/adf.csv' WITH HEADER = true ;", ConsistencyLevel.QUORUM)
    dumptableascsv()

1 Ответ

0 голосов
/ 09 ноября 2018

COPY - это рекомендация cqlsh - она ​​не является частью CQL и не может быть выполнена через клиентов собственного протокола. Вы получаете именно эту ошибку вместо ошибки запроса сервера, потому что вы проходите уровень согласованности в позиции parameters, равной Session.execute.

Вы можете использовать cqlsh, чтобы сделать это из скрипта, или взглянуть на DS Bulk tool для высокопроизводительной загрузки и выгрузки.

...