Pyspark:对数据帧的样本进行计数,而不是对整个数据帧进行计数



我目前有一些代码可以计算在数据帧上运行计数操作所需的总时间。我有另一个实现,它测量在这个数据帧的采样版本上运行计数所花费的时间。

sampled_df = df.sample(withReplacement=False, fraction=0.1)
sampled_df.count()

然后,我从抽样计数中推断出总计数。但与对整个数据集进行计数相比,我没有看到计算这个采样计数所花费的时间总体上减少。两者似乎都需要大约40秒。发生这种情况有原因吗?此外,当在整个数据帧上使用采样计数而不是计数时,在内存方面是否有改进?

您可以使用countApprovx。这可以让你选择你愿意等待大约计数/置信区间的时间。

示例仍然需要访问所有分区才能创建一个统一的示例。使用示例并不能真正节省时间。

最新更新