首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cassandra/Pycassa:获取随机行

Cassandra/Pycassa:获取随机行
EN

Stack Overflow用户
提问于 2012-03-05 11:45:03
回答 3查看 2.3K关注 0票数 3

是否有可能从Cassandra检索随机行(与Python/Pycassa一起使用)?

更新:使用随机行,我指的是随机选择的行!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-05 13:12:14

您可以通过使用一个随机的get_range键(只是一个随机字符串)和一个row_count值为1的start请求来完成这个任务。

从内存中看,我认为finish键需要与start相同,以便查询‘环绕’键空间;这通常会返回所有行,但是row_count会限制这一点。

还没有尝试过,但是这应该可以确保您得到一个结果,而不必知道确切的行键。

票数 1
EN

Stack Overflow用户

发布于 2012-03-05 12:25:15

不知道你所说的随机行是什么意思。如果您指的是随机访问行,那么肯定可以很容易地做到这一点:

代码语言:javascript
复制
import pycassa.pool
import pycassa.columnfamily

pool = pycassa.pool.ConnectionPool('keyspace', ['localhost:9160']
cf = pycassa.columnfamily.ColumnFamily(pool, 'cfname')
row = cf.get('row_key')

这会给你带来任何的麻烦。如果你的意思是你想要一个随机选择的行,我认为如果你不知道钥匙是什么,你很难做到这一点。您可以生成一个索引行,然后从中选择一个随机列,并使用它从另一个列系列中获取一行。基本上,您需要创建一个新行,其中每个列值都是要从中选择行的列族中的行键。然后你可以从那一行随机抓取一列,你就有了一个随机行的键。

我不认为吡咯烷酮提供任何支持来抓取一个随机的,非索引的行。

票数 0
EN

Stack Overflow用户

发布于 2012-12-03 19:00:21

这适用于我的案子:

代码语言:javascript
复制
ini = random.randint(0, 999999999)
rows = col_fam.get_range(str(ini), row_count=1, column_count=0,filter_empty=False)

您必须适应您的行键类型(在我的例子中是字符串)

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

https://stackoverflow.com/questions/9566060

复制
相关文章

相似问题

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