python - pyspark countApprox() 似乎与 count() 没有什么不同
问题描述
我在使用count()
pyspark 的方法时遇到问题,这对我的程序来说太慢了。我发现了countApprox(timeout,confidence)
一个,但它并没有加快这个过程。
我发现做一些研究是我可能应该使用rdd.countApprox.initialValue
但它似乎不起作用,因为在 pyspark 中的结果countApprox
是一个 int 而不是一个PartialResult
对象(我猜它在 scala 或 java 中是不同的)
有谁知道如何countApprox
在 pyspark 中工作?
我要比较的测试代码:
a = sc.parallelize(range(1000000),10)
import time
t = time.time()
print("there are ",a.count()," rows")
print(time.time()-t)
给出:
there are 1000000 rows
3.4864296913146973
但
b = sc.parallelize(range(1000000),10)
import time
t = time.time()
print("there are ",b.countApprox(10,0.1)," rows")
print(time.time()-t)
分发 :
there are 1000000 rows
3.338970422744751
这几乎是相同的执行时间......
解决方案
countApprox 比 count 工作得更快,有超时和置信度定义。我想您会在大型数据集上看到运行时差异。
推荐阅读
- elasticsearch - Elastic search 2.3 查询问题
- r - 从第二次遇到开始替换字符串中的字符值的R代码
- typescript - 在 WebStorm 中为 Vue + TypeScript 配置 jest 运行配置
- r - 读取 R 代码时读取 roxygen2 @importFrom
- .net - 在 .NET Core 2.1 中格式化 JSON 响应。将多个属性移动到单个枚举属性
- python - PyQt5 和带有 QtSql 的持久数据库
- python - 在重新索引中使用副本并保存新索引的数据
- javascript - 在异步循环中等待承诺
- php - 空表中的 SELECT MAX(id) 返回 NULL 而不是 0
- reactjs - React / D3 错误“未捕获的 TypeError:无法读取属性 'ownerDocument' of null”