为什么Cassandra Python查询结果用下划线替换了列名称的空间?
我正在使用Cassandra Python驱动程序。 版本详细信息:
[cassandra-driver (3.25.0)]
[cqlsh 6.8.0 | Cassandra 4.0.4 | CQL spec 3.4.5 | Native protocol v4]
我正在查询Cassandra数据库,其中我创建了一些具有空白空间和特殊字符的列,例如“%”,我设法通过以双引号(ex“ mem util%”)向这些列提供这些列来进行操作,
desc my_keyspace.memutils;
CREATE TABLE my_keyspace.memutils (
time text PRIMARY KEY,
"Mem Util %" text,
...
当我查询这些列时通过CQL,我为列名提供了双引号,并且获得了正确的数据以及结果列,例如:
select "Mem Util %" from my_keyspace.memutils;
Mem Util %
----------------------
9.177055477
83.85167852
但是,当我使用Cassandra-Python驱动程序时,查询能够获取适当的数据,但它替换了列名称中的空格在结果数据(响应Feature)中的下划线(响应)
代码片段
from cassandra.cluster import Cluster
from cassandra.policies import DCAwareRoundRobinPolicy
from cassandra.auth import PlainTextAuthProvider
...
print("Select query--> ", fetch_query)
response_future = self.session.execute(fetch_query);
...
print('response_future --> ', response_future[0])
输出
Select query--> select Time, "Mem Util %" from my_keyspace.memutils;
response_future--> Row(time='631', Mem_Util='9.177055477')
结果数据集在列中也没有“%”。
问题:
- session.execute()中是否有任何选项,可以禁用上述行为?
我看到
I am using cassandra python driver.
Version details :
[cassandra-driver (3.25.0)]
[cqlsh 6.8.0 | Cassandra 4.0.4 | CQL spec 3.4.5 | Native protocol v4]
I am querying Cassandra database where I have created few columns which have empty space and special characters such as '%' I manage to do by supplying those columns in double quotes( ex "Mem Util %")
desc my_keyspace.memutils;
CREATE TABLE my_keyspace.memutils (
time text PRIMARY KEY,
"Mem Util %" text,
...
When I query those column via CQL, I supply the column name with double quotes and I get proper data as well as my result columns are as it is, example :
select "Mem Util %" from my_keyspace.memutils;
Mem Util %
----------------------
9.177055477
83.85167852
But when I use Cassandra-python driver, the query is able to get the proper data but it replaces spaces in the column's name with underscore in the result data(ResponseFeature)
Code snippet
from cassandra.cluster import Cluster
from cassandra.policies import DCAwareRoundRobinPolicy
from cassandra.auth import PlainTextAuthProvider
...
print("Select query--> ", fetch_query)
response_future = self.session.execute(fetch_query);
...
print('response_future --> ', response_future[0])
Output
Select query--> select Time, "Mem Util %" from my_keyspace.memutils;
response_future--> Row(time='631', Mem_Util='9.177055477')
The result data set also doesn't' have "%" in the column.
Question :
- Is there any option in session.execute(), to disable above behavior ?
I saw doc
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论