Cassandra和Python驱动程序 - 获取重复行

时间:2015-11-12 23:37:51

标签: python cassandra

我尝试使用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,它将两次给我两个相同行的副本。

1 个答案:

答案 0 :(得分:1)

由于这一行:

print results

应该是没有's'的结果

print result