Scala Spark:数据可以';我不适合内存,我想避免将其写入磁盘,我可以用数据片执行迭代以仅使用内存吗?

Scala Spark:数据可以';我不适合内存,我想避免将其写入磁盘,我可以用数据片执行迭代以仅使用内存吗?,scala,apache-spark,Scala,Apache Spark,我有一些不适合存储的数据。因此,我阅读了以下链接: 与此相关的前几项: 若数据不适合内存,则根据读取火花写入磁盘。但我想避免在磁盘上写入。所以我想知道我是否可以确定我需要迭代多少次才能只在内存中处理数据。我能做这个吗?如何进行?这很难确定在数据集上迭代所需的确切时间 从磁盘和缓存中读取数据后,spark将具体化数据集,并在内存中使用钨丝格式表示数据集 现在,内存中的数据集的大小取决于数据集各个列的数据类型。此外,由于数据的反序列化,它将占用比序列化磁盘数据更多的内存 根据我的经验,将拼花地板

我有一些不适合存储的数据。因此,我阅读了以下链接:

与此相关的前几项:


若数据不适合内存,则根据读取火花写入磁盘。但我想避免在磁盘上写入。所以我想知道我是否可以确定我需要迭代多少次才能只在内存中处理数据。我能做这个吗?如何进行?

这很难确定在数据集上迭代所需的确切时间

从磁盘和缓存中读取数据后,spark将具体化数据集,并在内存中使用钨丝格式表示数据集

现在,内存中的数据集的大小取决于数据集各个列的数据类型。此外,由于数据的反序列化,它将占用比序列化磁盘数据更多的内存

根据我的经验,将拼花地板磁盘数据放入内存通常需要3-4倍的内存。因此,如果您在拼花地板的HDFS中有50G数据,那么您可能需要集群中大约200G的内存来缓存完整的数据


在这里得到一个完美的数字之前,您需要进行反复试验。

这很难确定在数据集上迭代所需的确切时间

从磁盘和缓存中读取数据后,spark将具体化数据集,并在内存中使用钨丝格式表示数据集

现在,内存中的数据集的大小取决于数据集各个列的数据类型。此外,由于数据的反序列化,它将占用比序列化磁盘数据更多的内存

根据我的经验,将拼花地板磁盘数据放入内存通常需要3-4倍的内存。因此,如果您在拼花地板的HDFS中有50G数据,那么您可能需要集群中大约200G的内存来缓存完整的数据


在这里得出一个完美的数字之前,您需要进行反复试验。

您希望进行什么类型的操作?许多任务都需要迭代整个数据集。为什么我要问您是否希望避免写入磁盘?您希望执行哪些类型的操作?许多任务都需要迭代整个数据集。我为什么要问您是否希望避免写入磁盘?