为什么Cassandra Python查询结果用下划线替换了列名称的空间?

发布于 2025-02-10 02:27:34 字数 1322 浏览 2 评论 0原文

我正在使用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')

结果数据集在列中也没有“%”。

问题:

  1. 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 :

  1. Is there any option in session.execute(), to disable above behavior ?

I saw doc

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文