Caching 如何在Spark中将文件部分作为RDD缓存在内存中?

Caching 如何在Spark中将文件部分作为RDD缓存在内存中?,caching,distributed-caching,apache-spark,Caching,Distributed Caching,Apache Spark,我需要流式读取非常大的文件(在TBs)。为了获得更高的吞吐量,如果我们可以在内存中缓存文件部分。Spark可以在分布式内存中缓存数据。如何使用spark缓存文件部分 文件大于任何一台计算机的本地存储空间,也大于集群中内存的总容量之和 将数据存储在分布式存储系统中,如HDFS等。这将以分布式方式存储数据。您必须根据自己的需求选择正确的文件系统(内部部署或云中等) 对HDFS文件中的数据运行Spark。从文件中创建RDD(请参见spark文档),过滤掉您实际需要的部分数据(例如,在大型日志文件中仅包

我需要流式读取非常大的文件(在TBs)。为了获得更高的吞吐量,如果我们可以在内存中缓存文件部分。Spark可以在分布式内存中缓存数据。如何使用spark缓存文件部分

文件大于任何一台计算机的本地存储空间,也大于集群中内存的总容量之和

  • 将数据存储在分布式存储系统中,如HDFS等。这将以分布式方式存储数据。您必须根据自己的需求选择正确的文件系统(内部部署或云中等)

  • 对HDFS文件中的数据运行Spark。从文件中创建RDD(请参见spark文档),过滤掉您实际需要的部分数据(例如,在大型日志文件中仅包含“error”的行),并将必要的部分缓存在内存中(以便后续查询更快)

  • 有许多与缓存相关的参数可以调整,以帮助您将数据放入内存(使用kryo序列化保持数据序列化,等等)。有关污损,请参阅指南


    你也可以考虑将数据分解成部分(单独的文件、分区表等),只加载它的一部分ScP.< /P>谢谢,但是如果我写一个SCAPLE作业,缓存的数据只能存活,直到该驱动程序死掉。例如,当作业完成时,我使用SparkSQL运行一个查询,缓存也完成了。我怎样才能一直保持一份充满活力的工作?