计算RDD中的行数

计算RDD中的行数,第1张

计算RDD中的行数

您有一个正确的想法:用于

rdd.count()
计算行数。没有更快的方法。

我认为您应该问的问题是 为什么

rdd.count()
这么慢?

答案是

rdd.count()
“动作”,这是一个急切的 *** 作,因为它必须返回实际的数字。您之前执行的RDD *** 作
count()
是“转换”-他们将RDD延迟地转换为另一个。实际上,转换实际上并没有执行,只是排队。调用
count()
,您将强制执行所有先前的惰性 *** 作。输入的文件需要立即加载,执行
map()
s和
filter()
s,执行随机播放等,直到最后我们有了数据并可以说出它有多少行。

请注意,如果您拨打

count()
两次,所有这些都会发生两次。返回计数后,所有数据都将被丢弃!如果要避免这种情况,请调用
cache()
RDD。然后,对的第二次调用
count()
将很快,并且派生的RDD也会更快地计算出来。但是,在这种情况下,RDD必须存储在内存(或磁盘)中。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存