我尝试使用Cassandra和Python驱动程序从Cassandra数据库中获取数据。
这是用于生成表的cql
命令,以及密钥空间:
CREATE KEYSPACE regression WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1};
USE regression;
CREATE TABLE results (
uuid text,
jobname text,
date text,
block text,
results text,
metrics text,
PRIMARY KEY ((uuid), jobname, date, block));
当我打开cql
并输入select block from results
时,我会收到以下信息:
block
------------------------
simple_buff
simple_buff_pre_commit
然而,当我在python中做同样的事情时:
from cassandra.policies import RetryPolicy
cluster = Cluster(
contact_points=['127.0.0.1'],
default_retry_policy = RetryPolicy()
)
session = cluster.connect('regression')
results = session.execute("select block from results")
for result in results:
print results
print "END"
它给了我:
[Row(block=u'simple_buff'), Row(block=u'simple_buff_pre_commit')]
END
[Row(block=u'simple_buff'), Row(block=u'simple_buff_pre_commit')]
END
为什么它返回一个带有两个项目的行,与cql客户端相比只返回两行一个项目?如果我在python中执行select * from results
,它将两次给我两个相同行的副本。
答案 0 :(得分:1)
由于这一行:
print results
应该是没有's'的结果
print result