python - 类型错误 : Unhashable type UserType when creating a Cassandra Python driver model with a Set of a UDT

标签 python cassandra datastax

此问题与 Datastax Cassandra python 驱动程序的对象映射器有关。 尝试使用 UDT 的“集合”作为字段创建模型时,出现错误: TypeError:无法散列的类型:'[UdtClassName]'

但是,我能够创建具有基本类型(例如文本)集合的模型或具有 UDT 列表的模型。

请注意,这个问题似乎只存在于对象映射器中,因为我能够使用 CQL 查询在 Cassandra 中创建 UDT 集。

有人遇到过这个问题吗?有人有什么建议吗?

我正在使用 python 3.4.4 运行 cassandra python 驱动程序 3.2.2

最佳答案

这在 Cassandra 中是可能的(并且直接使用核心驱动程序),但是 cqlengine 映射器目前不支持它。原因是遗留 API 限制,其中映射器规范化为集合和映射的基本 python 类型。因此,API 对集合元素和映射键具有相同的哈希能力要求。

我们有一张票打开here , 但它需要等待下一个主要版本,因为这意味着 API 的更改。

您可以尝试通过在您的 UDT 模型类上提供哈希来解决这个问题(如果它有意义的话)。

关于python - 类型错误 : Unhashable type UserType when creating a Cassandra Python driver model with a Set of a UDT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011190/

相关文章:

java - 用于 Apache Cassandra 安装的 DataStax Bulk Loader 1.7.0 在 Ubuntu 上无法运行

java - 无法使用 Hector 插入带有复合键的行

python - 从分隔的行创建列表

python - Django 将字符串自动转换为日期时间

java - 发现来自另一个数据中心的节点

Spring-Data-Cassandra SchemaAction 不工作

java - Spark Datastax Java API 选择语句

cassandra - 如何在 Cassandra 的 Java 对象映射 API 中映射单行

python - 从 m by n np.array 中找出 m "smallest"个元素

python - 光束/数据流 Python : AttributeError: '_UnwindowedValues' object has no attribute 'sort'