hba*_*hba 9 java hadoop apache-spark
在Hadoop中,当我使用inputformat reader时,作业级别的日志会报告读取的记录数,还会显示字节数等.
在Spark中,当我使用相同的inputformat阅读器时,我得到的不是那些指标.
所以我想我会使用inputformat reader来填充rdd,然后只发布rdd中的记录数(rdd的大小).
我知道rdd.count()
返回rdd的大小.
但是,使用成本count()
对我来说并不清楚?例如:
count()
遗嘱后,rdd仍然保留在内存中,还是我必须显式缓存它?Dav*_*vid 14
它是分布式功能吗?每个分区是否会报告其计数并将计数汇总并报告?或整个rdd被带入司机并计算?
伯爵分发.在火花命名法中,计数是一种"行动".所有行动都是分发的.实际上,只有极少数东西可以将所有数据带到驱动程序节点,并且它们通常都有很好的文档记录(例如,接收,收集等)
执行count()后,rdd仍会保留在内存中还是我必须显式缓存它?
不,数据不会在内存中.如果你想要它,你需要在计数之前显式缓存.在采取Action之前,Spark的懒惰评估不会进行任何计算.除非有缓存调用,否则在Action之后不会将数据存储在内存中.
有没有更好的方法来做我想做的事情,即在对它们进行操作之前对记录进行计数?
缓存,计数,操作似乎是一个可靠的计划
归档时间: |
|
查看次数: |
3239 次 |
最近记录: |