【发布时间】:2020-02-07 20:20:27
【问题描述】:
我有以下 CQL 表。
session = columns.Date(primary_key=True, partition_key=True, required=True)
entity = columns.Text(primary_key=True, partition_key=True, required=True)
broker = columns.Text(primary_key=True, required=True)
prof = columns.Text(primary_key=True, required=True)
prod = columns.Text(primary_key=True, required=True)
....
从 cql 引擎读取文档有一个 'filter' 方法,我可以用来过滤(会话、实体)-> 分区键或任何我想要的。
我的问题是以下问题,我想总是按(会话,实体)过滤,但也可能有一些字段,例如“prof”或“prod”或两者兼而有之。
我的功能如下。
def search_by(cls, entity, session, **kwargs): #entity, session, filter
activity_summary = ActivitySummary.objects \
.filter(entity=entity, session=session) \
.filter(kwargs) \
.allow_filtering()
return cls._to_dataframe(activity_summary)
其中 **kwargs 是我的变量过滤器,一个带有我想用来过滤它的主键的字典(例如 {'prof':'MAXIMO'} )。
但它不起作用,因为它没有正确匹配字典名称与列 cql 表名称。
有什么想法吗?谢谢。
【问题讨论】:
标签: python filter cassandra cql