apache-spark - 如何有效地计算数据帧的行数?
问题描述
我有一个非常大的 pyspark 数据框,我会计算行数,但count()
方法太慢了。还有其他更快的方法吗?
解决方案
如果您不介意获得近似计数,可以尝试先对数据集进行采样,然后按采样因子进行缩放:
>>> df = spark.range(10)
>>> df.sample(0.5).count()
4
在这种情况下,您可以将count()
结果缩放 2(或 1/0.5)。显然,这种方法存在统计误差。
推荐阅读
- c# - FirstOrDefault() 导致 Collection 被修改;枚举操作可能无法执行。例外
- snowflake-sql - 在特定事件之后的行 FOR A KEY
- php - 使用googlespreadsheet api v4批量更新单个单元格?
- r - 如何使用 R 中的 Hayes Process 更改调解调解的调解人值
- algorithm - 对于两个非负函数 f 和 g,如果 f = O(g) 和 g = O(f) 并且 ∀n,f(n) > g(n) 则证明或反证 f - g = O(1)
- reactjs - 如果提供了某些值,有没有办法使所需的打字稿值可选?
- firebase - 我遇到“错误:没有为类型“对象”定义运算符“[]”。我该如何解决这个问题?
- azure - Azure 二头肌资源模块的依赖性问题
- react-native - Trouble migrating React Navigation v4 Deep Link configuration to React Navigation v5
- shell - 如何使别名不立即执行