Alb*_*bin 3 caching scala apache-spark rdd
val logList: RDD[String] = ...
val errorLogs = logList.filter(_.contains("Error")).persist()
//first action
val first100 = errorLogs.take(100)
//second action
val count = errorLogs.count
Run Code Online (Sandbox Code Playgroud)
这个案子将如何坚持工作?在下面的代码的情况下
val errorLogs = logList.filter(_.contains("Error")).take(100)
Run Code Online (Sandbox Code Playgroud)
Spark不会扫描所有日志,因为Spark知道我们只对100行日志感兴趣.但是当我们缓存这个RDD并在其上调用多个动作时会发生什么,第一个动作只需要很少的记录,后来需要转换整个RDD的记录.
调用第一个动作时它会缓存记录吗?或者它会仅缓存调用第一个操作时第一个操作所需的部分记录?
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |