使用Cassandra 1.2.我通过以下方式使用CQL 3创建了一个表:
CREATE TABLE foo (
user text PRIMARY KEY,
emails set<text>
);
Run Code Online (Sandbox Code Playgroud)
现在我试图通过pycassa查询数据:
import pycassa
from pycassa.pool import ConnectionPool
pool = ConnectionPool('ks1', ['localhost:9160'])
foo = pycassa.ColumnFamily(pool, 'foo')
Run Code Online (Sandbox Code Playgroud)
这给了我
Traceback (most recent call last):
File "test.py", line 5, in <module>
foo = pycassa.ColumnFamily(pool, 'foo')
File "/home/john/src/pycassa/lib/python2.7/site-packages/pycassa/columnfamily.py", line 284, in __init__
self.load_schema()
File "/home/john/src/pycassa/lib/python2.7/site-packages/pycassa/columnfamily.py", line 312, in load_schema
raise nfe
pycassa.cassandra.ttypes.NotFoundException: NotFoundException(_message=None, why='Column family foo not found.')
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
如果您使用CQL3创建了表,并且希望通过基于thrift的客户端访问它们; 您必须指定Compact Storage属性.例如:
CREATE TABLE dummy_file_test
(
dtPtn INT,
pxID INT,
startTm INT,
endTm INT,
patID BIGINT,
efile BLOB,
PRIMARY KEY((dtPtn, pxID, startTm))
)with compact storage;
Run Code Online (Sandbox Code Playgroud)
这是我在使用Pycassa访问基于CQL3的列族时必须要做的事情
| 归档时间: |
|
| 查看次数: |
2611 次 |
| 最近记录: |