是否有可能从Cassandra检索随机行(与Python/Pycassa一起使用)?
更新:使用随机行,我指的是随机选择的行!
发布于 2012-03-05 13:12:14
您可以通过使用一个随机的get_range键(只是一个随机字符串)和一个row_count值为1的start请求来完成这个任务。
从内存中看,我认为finish键需要与start相同,以便查询‘环绕’键空间;这通常会返回所有行,但是row_count会限制这一点。
还没有尝试过,但是这应该可以确保您得到一个结果,而不必知道确切的行键。
发布于 2012-03-05 12:25:15
不知道你所说的随机行是什么意思。如果您指的是随机访问行,那么肯定可以很容易地做到这一点:
import pycassa.pool
import pycassa.columnfamily
pool = pycassa.pool.ConnectionPool('keyspace', ['localhost:9160']
cf = pycassa.columnfamily.ColumnFamily(pool, 'cfname')
row = cf.get('row_key')这会给你带来任何的麻烦。如果你的意思是你想要一个随机选择的行,我认为如果你不知道钥匙是什么,你很难做到这一点。您可以生成一个索引行,然后从中选择一个随机列,并使用它从另一个列系列中获取一行。基本上,您需要创建一个新行,其中每个列值都是要从中选择行的列族中的行键。然后你可以从那一行随机抓取一列,你就有了一个随机行的键。
我不认为吡咯烷酮提供任何支持来抓取一个随机的,非索引的行。
发布于 2012-12-03 19:00:21
这适用于我的案子:
ini = random.randint(0, 999999999)
rows = col_fam.get_range(str(ini), row_count=1, column_count=0,filter_empty=False)您必须适应您的行键类型(在我的例子中是字符串)
https://stackoverflow.com/questions/9566060
复制相似问题