Apache spark 是否为Spark中的每个批处理操作加载和卸载静态文件?
我正在使用Spark对我的数据执行一些操作。 我需要使用辅助字典来帮助我的数据操作Apache spark 是否为Spark中的每个批处理操作加载和卸载静态文件?,apache-spark,Apache Spark,我正在使用Spark对我的数据执行一些操作。 我需要使用辅助字典来帮助我的数据操作 streamData = sc.textFile("path/to/stream") dict = sc.textFile("path/to/static/file") //some logic like: //if(streamData["field"] exists in dict) // do something 我的问题是:dict是一直在内存中,还是每次Spark处理一个批时都需要加载和卸载它 感谢d
streamData = sc.textFile("path/to/stream")
dict = sc.textFile("path/to/static/file")
//some logic like:
//if(streamData["field"] exists in dict)
// do something
我的问题是:dict是一直在内存中,还是每次Spark处理一个批时都需要加载和卸载它
感谢dict将保留在内存中,除非需要为运行时需要内存的其他对象逐出它。如果以后需要重用它,应该在初始化它之后执行dict.cache()。如果RDD非常大且无法在内存中缓存,则还可以使用.persist(仅限disk_)将其持久化到磁盘。对RDD机制有一个有用的总结