在python版本的Google App Engine中,如何找到具有特定属性索引的模型的四分位数值?

时间:2011-09-13 08:18:52

标签: google-app-engine median

在Google App Engine中,我有一个带有10K实体的模型,其属性为foo。找到第一个四分位数,第二个四分位数(中位数)和第三个四分位数实体的最有效方法是什么?我可以获取已排序的键列表并以编程方式找到三个四分位键,但下载所有键将无法缩放。什么是更优雅的方法?

sortedValues = MyModel.all(keys_only=True).order('foo').fetch(limit=10000)

2 个答案:

答案 0 :(得分:1)

您是否尝试过.fetch(2500,limit=1).fetch(5000,limit=1).fetch(7500,limit=1)?第一个参数对应于偏移量。

但是,文档会读取以下内容,因此这种方法无法为您提供O(1)性能。

Note: The query has performance characteristics that correspond linearly with the offset amount plus the limit amount.

来自here

答案 1 :(得分:0)

由于四分位数是根据实体排序定义的,遗憾的是,除了迭代它们之外,没有办法确定它们。正如cheeken所指出的那样,你可以通过使用偏移量参数获取中间结果来加快速度。