首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将内存中的文件部件缓存为Spark中的RDD?

如何将内存中的文件部件缓存为Spark中的RDD?
EN

Stack Overflow用户
提问于 2014-05-08 10:45:00
回答 1查看 2.2K关注 0票数 1

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-09 06:02:56

  1. 将数据存储在诸如HDFS等分布式存储系统中。这将以分布式方式存储数据。您必须根据您的需求选择正确的文件系统(在前提下,还是在云中,等等)
  2. 对HDFS文件中的数据运行Spark。从文件中创建一个RDD (请参阅spark文档),筛选出您实际需要的部分数据(例如,只包含大日志文件中包含"error“的行),并在内存中缓存必要的部分(以便以后的查询更快)。

您可以调优一些缓存相关参数,以帮助您将数据放入内存中(使用kryo序列化保持数据序列化,等等)。有关防御,请参见内存调谐指南。

您还可以考虑将数据分解为各个部分(单独的文件、分区表等)。只装载其中的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23539511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档