我遇到的情况是我从数据湖(1TB)开始,并且我有足够的试探法来创建数据水坑(约15-20百万行)。现在,我需要对其中一列进行分组,并获取大量统计数据以及一些数据样本。
我的汇总是中位数,计数和第二列值的样本...
我幼稚的方法是过滤掉我的数据,进行分组,然后进行大量聚合。代码本身只能处理少量数据,但是无法扩展。它只是挂了。
鉴于我已将数据缩减得如此之大,我觉得我应该重新分区...但是我不确定我应该按groupby列还是仅按数字进行分区。这些组将非常偏斜-记录中可能只有25-75个,有些将是单例。
第二个问题是我是否应该在几个单独的集合中执行聚合,然后通过groupby列将结果数据帧联接起来-而不是在单个groupby中进行所有合并。
即使只有不到2000万行,我在30node集群上也无所获,所以我显然做错了!
在偏斜分组的基础上进行计算可能有完全不同的方法吗?