首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用DataStax python cassandra-driver过滤行值吗?

可以使用DataStax python cassandra-driver过滤行值吗?
EN

Stack Overflow用户
提问于 2017-11-06 08:37:02
回答 1查看 379关注 0票数 0

我需要处理大约4,000个cassandra查询。我将每个查询ResultSet转换为生成器,以保持较低的内存占用。在生成器的每一行中,我只关心大约50个字段。

我知道我不能直接过滤CQL中的值域,但是DataStax Python Cassandra驱动程序中有没有内置的东西可以做到这一点呢?或者在我构建生成器时这样做会更有意义

代码语言:javascript
复制
def make_gen(response):
    for row in response:
        yield row.value.field1, row.value.filed2

我目前正在发布直接查询,但稍后将使用并发查询和准备好的语句转移到基于模型的方法。发出请求的代码非常简单

代码语言:javascript
复制
sess = connect_cas(env)
for user in users:
    q = 'select * from table ' + \
        'where key1 = {} and '.format(key_1) + \
        'key2 = {} and '.format(key_2) + \
        'sample_time > {} '.format(t1) + \
        'sample_time < {} '.format(t2)
   resp_gen = make_gen(sess.execute(q)) # just a yield json.loads(Row.value)
   for resp in resp_gen:
       if field in resp:
           // process data from this field

我只关心这个“字段”所在的行。从那以后,我更新了我的生成器,只在这个条件为真时才产生数据,但是,如果DataStax驱动程序中内置了一些更高效的东西,那么在4,000次查询时,节省的时间就会加起来。

EN

回答 1

Stack Overflow用户

发布于 2017-11-08 06:15:47

您是否显示您只处理field1field2设置为特定值的行?

它不完全是为此目的而构建的,但您可以使用自定义row_factory在较低级别实现此过滤,并避免命名元组、元组和附加生成器之间的转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47128157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档