0

我在 Cassandra 中使用 CQL3 创建了下表:

    CREATE TABLE user_log (
        user_id text,
        zone_id text,
        freq int,
        time timestamp,
        PRIMARY KEY (user_id, zone_id)
    )

datastax我使用Cassandra-Python 驱动程序 将一些值插入到此表中,如下所示:

    fmt = '%m/%d/%Y %H:%M'
    t1 = datetime.strptime("01/01/2000 22:05", fmt)
    prepared = session.prepare("""
                    INSERT INTO user_log (user_id,zone_id,freq,time) VALUES (?,?,?,?)
                    """)
    session.execute_async(prepared.bind((str(Uid),str(zone_id),int(freq),t1 )))

插入很好,但是当我尝试检索值时,它会在检索时间值时引发异常。所有其他列的检索工作正常。Select *也抛出异常。

4

2 回答 2

2

如果您在 cassandra 中插入和检索时间戳时遇到问题,您并不孤单,请参阅: 如何将日期时间插入 Cassandra 1.2 时间戳列

解决方案可能是从您的日期时间计算 unix 时间戳(自纪元以来经过的毫秒数),然后插入/检索它。

一般来说,如果您准确地说明了错误消息(如果有的话),这将有助于编写一个有用的答案?另外,究竟是哪一行代码导致了错误?

于 2013-07-30T09:02:35.990 回答
1
import json
import uuid

class UUIDEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, uuid.UUID):
            return obj.hex
        return json.JSONEncoder.default(self, obj)

j = json.dumps( invar, indent=4, separators=(',', ': '), cls=UUIDEncoder )
于 2014-03-23T01:50:32.030 回答