Apache spark Spark将如何存储500GB/1TB数据的文件

Apache spark Spark将如何存储500GB/1TB数据的文件,apache-spark,bigdata,Apache Spark,Bigdata,我是Spark的新手,我读到Spark将数据存储在内存中 现在假设我有一台256GB内存和72TB硬盘的机器。 我想知道,如果我加载一个500GB/1TB的文件,那么它将在哪里存储数据 查询: 它会将数据存储在磁盘中吗 它会将部分数据存储在内存中,另一半存储在磁盘中吗 提前感谢数据存储在磁盘上。只有在处理过程中,它才会将数据拉入内存。首先,除非使用未使用某些操作,否则不会对文件产生任何影响,因为Spark采用了延迟评估方法 指定操作后,spark将能够处理该文件 Spark将创建文件的几个分区,

我是Spark的新手,我读到Spark将数据存储在内存中

现在假设我有一台256GB内存和72TB硬盘的机器。 我想知道,如果我加载一个500GB/1TB的文件,那么它将在哪里存储数据

查询:

它会将数据存储在磁盘中吗

它会将部分数据存储在内存中,另一半存储在磁盘中吗


提前感谢

数据存储在磁盘上。只有在处理过程中,它才会将数据拉入内存。

首先,除非使用未使用某些操作,否则不会对文件产生任何影响,因为Spark采用了延迟评估方法

指定操作后,spark将能够处理该文件

Spark将创建文件的几个分区,然后根据转换和操作开始处理内存中的每个分区

现在假设分区大小大于当前可用内存,spark将尝试将尽可能多的数据或文件块放入内存,其余部分放入磁盘,然后进行相应的处理


我希望这能澄清您的疑问。

感谢Ani的回复。我仍然怀疑它如何将500GB/1TB数据加载到256GB内存中?我不知道Spark的具体情况,但您可以(和许多系统一样)处理磁盘或SSD上的大量数据(例如,比可用RAM更多的数据)。数据库系统就是这种情况的典型例子。他们正在处理更小的磁盘数据。@Vinetsalvi,这取决于具体情况。如果数据无法放入内存,则部分数据存储在磁盘上。当您
cache()
RDD或Dataset时,Spark将尝试只在Basile Starynkevitch和T.Gaweda的内存库中进行匹配@T.Gawęda您的意思是,每次处理时,数据都会加载一部分。例如,对于500GB的数据,将加载2次;对于1TB的数据,将加载4次。@VineetSalvi我不是100%确定,稍后将检查并写入引用;)谢谢你的回复,阿卡什