gpt4 book ai didi

python - 无法使用带有复合行键(UTF8Type、DateType)的 Pycassa 插入 Cassandra 列族

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:04 25 4
gpt4 key购买 nike

我有一个具有以下架构的 Cassandra 列族(使用 Pycassa 创建):

ColumnFamily: tracker
Key Validation Class: org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.DateType)
Default column value validator: org.apache.cassandra.db.marshal.BytesType
Cells sorted by: org.apache.cassandra.db.marshal.UTF8Type
GC grace seconds: 864000
Compaction min/max thresholds: 4/32
Read repair chance: 0.1
DC Local Read repair chance: 0.0
Populate IO Cache on flush: false
Replicate on write: true
Caching: KEYS_ONLY
Bloom Filter FP chance: default
Built indexes: []
Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
Compression Options:
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor

我正在尝试使用以下行插入其中:

self.tracker_batcher.insert(tracker_key, dictionary_to_insert)

tracker_key 是:

('cd7449e8-8f0d-4730-9ee4-ef60edfdd409', datetime.datetime(2013, 8, 14, 16, 47, 55, 856000))

我希望它能起作用——我在其他表中使用日期类型作为行键,它们很有用。此外 - 看起来我正在遵循 Pycassa 网站 ( http://pycassa.github.io/pycassa/assorted/composite_types.html ) 上的教程。

有关更多信息,我使用的是 Pycassa 1.9.0 版和 Cassandra 1.2.8

谢谢,

马特

编辑:

在事件的奇怪转折中,我收到的第一条错误消息:

TypeError:应为 str 或 unicode 值,但收到的是日期时间 (2013-08-14 16:45:15.376000)

我尝试这样修改查询:

tracker_key = (str(dictionary_to_insert['session_id']), datetime.datetime.strftime(dictionary_to_insert['datestamp'], "%Y-%m-%d %H:%M:%S"))

即将日期时间更改为字符串

并得到以下错误信息:

    raise TypeError('DateType arguments must be a datetime or timestamp')
TypeError: DateType arguments must be a datetime or timestamp

莫名其妙。

最佳答案

所以看起来问题实际上不是行列而是插入的值。

我已指定我将使用 UTF8Type 作为值,但试图插入用作键的一部分的相同日期时间作为列族中的值。

创建跟踪器键然后将 dictionary_to_insert 值转换为字符串修复它:)

关于python - 无法使用带有复合行键(UTF8Type、DateType)的 Pycassa 插入 Cassandra 列族,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com