如何指定缓存_第1页
如何指定缓存_第2页
如何指定缓存_第3页
如何指定缓存_第4页
如何指定缓存_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:张义目录0102指定cache方法指定persist(持久化)方法指定cache方法1指定cache方法cache方法可以将RDD缓存在内存中,如下例所示:vallogs=sc.textFile("path/to/log-files")valerrorsAndWarnings=logsfilter{l=>l.contains("ERROR")||l.contains("WARN")}errorsAndWarnings.cache()指定cache方法valerrorLogs=errorsAndWarningsfilter[l=>l.contains("ERROR")}valwarningLogs=errorsAndWarningsfilter{l=>l.contains("WARN")}valerrorCount=errorLogs.countvalwarningcount=warningLogs.count指定cache方法RDD是否正在被缓存?testRdd.cache()testRdd.count()testRdd.collect()由于RDD是在执行第一个操作之前被缓存的,而不是之后,因此,只有collect操作可以使用缓存的值。指定cache方法如果应用程序不会多次读取数据集,则缓存实际上会使作业更慢。使用缓存是需要付出代价的。如果由于缓存导致的内存压力成本大于避免重新计算RDD所带来的好处,在该情况下,缓存并不是一个合适的机制。如果可以轻松地重新计算数据集,且应用程序不会多次访问它,则重新计算可能更快。指定persist(持久化)方法2指定persist(持久化)方法将RDD存储在内存中以使后续的计算使用的第二种方法是调用persist方法。可以将持久化视为缓存RDD的一种更通用的方法,因为其不仅仅允许指定内存类型的存储来存储RDD如果调用persist方法时不附加任何参数,其工作方式与cache方法相似,即存储RDD到内存中。例如:vallines=sc.textFile(/data/examples/datal.txt)lines.persist()指定persist(持久化)方法cache(缓存)和persist(持久性)都在做同样的事情,即临时存储RDD,两种方法默认的存储类型都是内存。这两种方法的区别在于persist方法允许指定特定的存储类型来存储RDD。如果你比较关心内存的使用且认为当前使用了过多的内存,则除了内存之外,还有其他存储类型可选。如果决定存储RDD且其与当前JVM内存不匹配,则可以指定其他存储级别,如下所示。指定persist(持久化)方法MEMORY_ONLY:默认存储级别,将RDD作为反序列化的Java对象进行存储,如果内存中没有足够的空间用于RDD存储,在需要时会对无法缓存的RDD分区进行重新计算,例如:vallines=sc.textFile(/data/examples/datal.txt)lines.persist(MEMORY_ONLY)MEM_AND_DISK:将RDD作为反序列化Java对象存储在内存中,如果没有足够的内存空间,则将分区存储在磁盘上以供将来读取。例如:testRdd.persist(StorageLevel.MEMORY_AND_DISK)指定persist(持久化)方法MEMORY_ONLY_SER;将RDD作为序列化Java对象存储在内存中(默认情况下,以反序列化形式存储),这样可以提高空间使用效率。但是,这也意味着后期在读取这些数据时,需要更多的CPU来进行序列化文件的解析。指定此存储级别的方法如下所示:testRdd.persist(StorageLevel.MEMORY_ONLY_SER)MEMORY_AND_DISK_SER:与MEMORY_ONLY_SER级别类似,但使用磁盘存储不适合存储于内存中的分区。例如:testRdd.persist(StorageLevel.MEMORY_AND_DISK_SER)指定persist(持久化)方法DISK_ONLY:跳过内存,将所有的RDD分区存储于磁盘上,例如:testRdd.persist(StorageLevel.DISK_ONLY)MEMORY_ONLY_2,MEMORY_AND_DISK_2等:这些存储层级的工作方式与前面描述的相应存储级别类似,不同之处在于每个分区都存储在两个节点上以实现弹性恢复。设置此存储级别的方式如下所示:指定persist(持久化)方法testRdd.persist(StorageLevel.MEMORY_ONLY_2)testRdd.persist(StorageLevel.MEMORY_ONLY_SER_2)testRdd.persist(StorageLev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论