我正在木星笔记本中读取Cassandra数据库数据。在Cassandra中,我们可以将其与命令“ describe keyspaces;”一起使用。
假设,当我Jupyter连接Cassandra时,我不想使用Cassandra,想通过Jupyter笔记本输入Cassandra命令,如何实现描述键空间以了解键空间
试图输入描述键空间;命令
from cassandra.cluster import Cluster
cluster = Cluster(['127.0.0.1']) # provide contact points and port
session = cluster.connect('fiirstkeyspace')
rows = session.execute('select * from books_by_author limit 5 ;')
for row in rows:
print(row)
在上面的代码中,我知道我有一个称为'fiirstkeyspace'的键空间
但是,我想通过Jupyter笔记本了解Cassandra中的所有键空间。
show keyspaces;
File "<ipython-input-62-dd2f479cd0fc>", line 1
show keyspaces;
^
SyntaxError: invalid syntax
describe keyspaces;
File "<ipython-input-67-21f5033a29b3>", line 1
describe keyspaces;
^
SyntaxError: invalid syntax
答案 0 :(得分:1)
describe keyspaces
等是在cqlsh中实现的命令-它们不是真正的CQL命令。在Python中,您可以通过Metadata class获取所有这些信息,这些信息隐藏了实现细节,因为系统表的架构在版本之间可能会有所不同。
获取所有键空间名称的代码非常简单(cluster
是您创建的用于连接到Cassandra集群的对象的名称):
cluster.metadata.keyspaces.keys()
然后您可以从cluster.metadata.keyspaces
映射中获取有关各个键空间的数据。