当通过pythons csh模块连接到cassandra并尝试运行一个简单的select查询时,我似乎得到一个布尔值而不是查询结果。当我进入cassandra框并打开cqlsh shell并直接查询cassandra时,我得到了结果:
$ ./cqlsh
Connected to stg_sal_cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.17.858 | DSE 4.6.11 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> use "SAL";
cqlsh:SAL> select * from sal_metadata where key='972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94';
key | column1 | value
------------------------------------------------------------------+--------------------------------------------------------------------------+----------------------------------------------------------------------
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | Alternate|THUMBNAIL_MEDIUM_RESULT:true|h:320|mt:image/jpeg|s:19477|w:320 | sal:5797d15fe18e5d58a74c927d342142f998ea084359f6a789f1cb2ba924231d95
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | CI_COMPLETE | true
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | Capture-Date | 2008-11-08T06:13:02.000Z
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | ContentPermissions | SHARE
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | Height | 2112
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | Mime-Type | image/jpeg
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | Width | 2816
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | sal.loc | /opt/newbay/storage/sal/tank3
972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94 | sal.size | 1385855
(9 rows)
cqlsh:SAL>
然而,当我从远程python shell尝试上述操作时,我得到了布尔值' True'返回。
>>> import cql
>>> con=cql.connect('10.10.10.10', 9160, 'SAL')
>>> cursor = con.cursor()
>>> CQLString = "select * from sal_metadata where key='972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94';"
>>> res=cursor.execute(CQLString)
>>> res.fetch()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'bool' object has no attribute 'fetch'
>>> res
True
>>>
到处都看,这似乎会返回查询结果,所以我错过了什么?
A
答案 0 :(得分:1)
您需要遍历结果集
这是最简单的例子:
from cassandra.cluster import Cluster
cluster = Cluster(['10.10.10.10'])
session = cluster.connect('SAL')
CQLString = "select * from sal_metadata where key='972cca8691c0804f685702d4a307b44f60cc59254094c903354f55779344bd94';"
for row in session.execute(CQLString)
print row