【问题标题】:'ResultSet' object has no attribute 'column_types'ResultSet' 对象没有属性 'column_types
【发布时间】:2017-07-22 08:55:06
【问题描述】:

我使用

在我的 Mac 上安装了 cassandra
homebrew install cassandra

它安装了cassandra版本

[cqlsh 5.0.1 | Cassandra 3.10 | CQL spec 3.4.4 | Native protocol v4]

现在我使用 cqlsh 连接到 cassandra 并创建一个键空间和一个表。当我尝试在 cqlsh 中查询表时。我收到一个错误

'ResultSet' object has no attribute 'column_types

我搜索了错误并找到了这个

https://groups.google.com/forum/#!msg/nosql-databases/O3kZmk8AoeY/PooBo9uWDQAJ

https://issues.apache.org/jira/browse/CASSANDRA-12799

但我不清楚解决方案到底是什么...第二个链接似乎表明问题已自动解决...但对我来说显然不是

【问题讨论】:

  • 同样的问题。系统很干净,应该没有任何旧版本。我已经尝试过使用默认的python和自制的python,但问题仍然存在。重新安装也没有帮助。

标签: cassandra


【解决方案1】:

我只是提交了一个对自制项目进行修复的拉取请求: https://github.com/Homebrew/homebrew-core/pull/10650

【讨论】:

  • Homebrew 合并了修复一个 brew upgrade cassandra 将解决这个问题
【解决方案2】:

使用 brew 从 3.9 升级到 3.10 后,我遇到了同样的错误。 不幸的是,我找不到原因,也找不到答案。 我研究的是安装/卸载也通过 pip (cqlsh, cassandra-driver) 安装的其他版本。

寻找替代方案我通过 docker 安装了 cassandra,希望这对您来说也是一个可行的替代方案 - 它对我有用。

使用来自 docker-cassandra - https://hub.docker.com/_/cassandra/ 的指南,我使用以下两个命令设置并连接到 cassandra 3.10(假设 docker ist 基本上是从 DMG 文件安装的)。

docker run --name cas310 -p 9042:9042 -d cassandra:3.10
docker exec -it cas310 cqlsh

这还允许您通过默认 cql-port 9042 从容器外部通过 CQL 访问 cassandra。

注意:使用 cqlsh 从我通过主机上的 brew 安装的 cassandra-version 连接到 dockerized cassandra-instance 也会导致相同的错误消息。所以这让我相信用 cassandras brew-package 打包的 python-driver 存在一些问题。

【讨论】:

  • 您是如何找到其他版本的以及您是如何卸载它们的?
  • 取决于您安装的 python 版本:pip listpip3 list 或两者都尝试。我在 pip list 中也有 cqlsh 和 cassandra-driver (3.8.0),尽管 cqlsh 和 cassandra-driver (据我所见为 3.5.0) 也在 brew-package 中
  • 我查过了。我没有其他版本。我什至没有安装 pip 或 pip3。
  • 我对 cassandra (3.10) 的 brew-formula 做了一些调查,也许仍然引用了一个较旧的 cassandra-driver (3.5),而不是 apache 的 cassandra-3.10-tar 中提到的那个(那里是 cassandra-driver 3.7)。但我不是酿造公式的专家!我在 github 上的 homebrew-project 上提出了一个问题。
  • @KnowsNotMuch 我与 brew cassandra-formula 的贡献者进行了对话 - 他们修复了它 - 所以只需通过 brew 重新安装 cassandra。对我有用
【解决方案3】:

几天前我在工作的 macOS 笔记本电脑上遇到了这个问题;固定如下(从内存中不工作):

  • pip uninstall cql、cqlsh、cassandra-driver 以及其他任何看起来相关的东西。
  • brew uninstall cassandra(您的数据将保持正常)。
  • brew install python -- 我相信这是关键步骤,因为 macOS python 导致不兼容。
  • brew install cassandra(这可能足以解决问题,如果没有,请继续)。
  • sudo pip install cqlsh(我知道,sudo 不好——也许你可以把这一步和前面的 brew install cassandra 互换,以避免使用 sudo)。

这为我解决了问题,但给我留下了不兼容的协议版本,我已通过 cqlsh --cqlversion="#.#.#" 暂时解决了这些问题

【讨论】:

  • 我的机器上没有 pip。如果我这样做pip uninstall cql 它会说bash pip command not found.
  • 我尝试了您列出的步骤。首先我安装了 python,然后是 pip,然后是 cassandra,最后是 cqlsh。但它会导致同样的问题。这不能解决问题。
  • @KnowsNotMuch 嗯.. 很遗憾听到这个消息。我一周后才回来上班,所以在那之前不能检查。
【解决方案4】:

试试这个: pip install cassandra-driver --upgrade

【讨论】:

    猜你喜欢
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2016-07-05
    相关资源
    最近更新 更多