是否可以使用Python Cassandra驱动程序的预处理语句将时间戳值插入Cassandra键空间?当我尝试这样做时,我收到以下错误消息:
预期:<class 'cassandra.cqltypes.DateType'>, Got: <type 'str'>
我之前发现此问题是discussed。但不确定它是否已经解决。这该怎么做?使用简单语句执行相同操作效率低下。
答案 0 :(得分:0)
是的,您可以通过绑定 datetime 对象,通过预准备语句插入时间戳值。我成功地尝试了它。
答案 1 :(得分:0)
像Aaron所说,你需要使用一个日期时间对象。给出一个简单的表定义:
CREATE TABLE stackoverflow2.timestamps (
bucket text,
value timestamp,
PRIMARY KEY (bucket, value)
) WITH CLUSTERING ORDER BY (value DESC)
在给定有效(已连接)timestamps
的情况下,此代码会将十个时间戳插入session
表:
preparedInsert = session.prepare(
"""
INSERT INTO stackoverflow2.timestamps (bucket,value) VALUES (?,?);
"""
)
#end prepare statements
for counter in range(1,10):
currentTime = datetime.datetime.today()
bucket = currentTime.strftime("%Y%m")
session.execute(preparedInsert,[bucket,currentTime])
基本上,datetime.datetime.today()
行使用当前时间创建日期时间对象。 strftime
从中创建字符串时间bucket
,然后preparedInsert
将它们都放入Cassandra。