Statistics 计算分布式数据的四分位数

Statistics 计算分布式数据的四分位数,statistics,distributed,distributed-computing,Statistics,Distributed,Distributed Computing,不完全确定这是否是一个合适的论坛 我有一个小的数据库集群(4个框),每台机器都有一个整体数据集的碎片 我需要计算一个特定数据点的四分位数,但我需要在一次无法访问整个数据集的情况下进行计算 这可能吗 编辑我更喜欢准确的答案,但合理的近似值可能也会起作用。我想这可能是不可能的,因为你说数据库很小。如果它是一个大数据集,并且每个集群包含1/4的代表性样本,那么我猜您可以将特定数据点与一个集群上的数据进行比较 数据集中每个碎片的统计数据之间是否存在很大差异?我想这可能是不可能的,因为你说数据库很小。如果

不完全确定这是否是一个合适的论坛

我有一个小的数据库集群(4个框),每台机器都有一个整体数据集的碎片

我需要计算一个特定数据点的四分位数,但我需要在一次无法访问整个数据集的情况下进行计算

这可能吗


编辑我更喜欢准确的答案,但合理的近似值可能也会起作用。

我想这可能是不可能的,因为你说数据库很小。如果它是一个大数据集,并且每个集群包含1/4的代表性样本,那么我猜您可以将特定数据点与一个集群上的数据进行比较


数据集中每个碎片的统计数据之间是否存在很大差异?

我想这可能是不可能的,因为你说数据库很小。如果它是一个大数据集,并且每个集群包含1/4的代表性样本,那么我猜您可以将特定数据点与一个集群上的数据进行比较


数据集每个碎片的统计数据之间是否存在很大差异?

在这种情况下,您无法计算精确的四分位数,但QDigest算法解决了您的问题。你可以得到近似值,这是相当好的。您可以检查一下,Java实现在这里可用:

这样,您就可以在每个集群上创建QDigest数据结构。它的超级压缩数据结构,将维护数据集的四分位数摘要。此外,您可以执行这些数据结构的联合,这就解决了您的问题

因此,在每个簇中创建一个QDigest实例,为了合并结果,只需对每个簇执行这些实例的并集,这将为您提供相当好的四分位数近似值


有关详细信息,请参阅QDigest的论文

在这种情况下,您无法计算精确的四分位数,但QDigest算法解决了您的问题。你可以得到近似值,这是相当好的。您可以检查一下,Java实现在这里可用:

这样,您就可以在每个集群上创建QDigest数据结构。它的超级压缩数据结构,将维护数据集的四分位数摘要。此外,您可以执行这些数据结构的联合,这就解决了您的问题

因此,在每个簇中创建一个QDigest实例,为了合并结果,只需对每个簇执行这些实例的并集,这将为您提供相当好的四分位数近似值


有关详细信息,请参阅QDigest的论文

也许值得说明的是,您是否需要确切的答案,或者是否愿意接受合理的近似值。(+1)可能值得说明您是否需要确切答案,或者您是否愿意接受合理的近似值。(+1)集群很小,但数据库的大小有点大(取决于您对大的定义…可能总共100Gb)。四分位数只需要计算超过20万个点,每个服务器上有5万个点。点是随机分布在碎片上的。有了这样的样本大小和随机分布的碎片,我认为如果你在一台服务器或所有4台服务器上计算四分位数,你不会看到很大的差异。您的答案可能不准确,但我希望得到一个合理的近似值。集群很小,但数据库的大小有点大(取决于您对大的定义……可能总共100Gb)。四分位数只需要计算超过20万个点,每个服务器上有5万个点。点是随机分布在碎片上的。有了这样的样本大小和随机分布的碎片,我认为如果你在一台服务器或所有4台服务器上计算四分位数,你不会看到很大的差异。你的答案可能不准确,但我希望得到一个合理的近似值。