Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark sparkSQL数据帧是否可以超出内存?_Apache Spark - Fatal编程技术网

Apache spark sparkSQL数据帧是否可以超出内存?

Apache spark sparkSQL数据帧是否可以超出内存?,apache-spark,Apache Spark,我正在使用SparkSQL进行一些计算。每5分钟就会有一个新的数据帧进入。我需要在最近一周的数据帧上运行计算 这意味着我需要将12*24*7=2016数据帧合并为一个大数据帧,然后运行计算 大小将超过我的内存大小。我的spark集群中的所有节点总共有128G内存,这是不够的 所以我想知道如果数据框太大而无法放入内存,会发生什么?spark会暂时将其交换到磁盘吗?我是否需要明确要求spark进行交换,否则它将自动完成?您是否有需要读取的2016输入文件?如果是这样,spark的读取函数接受通配符,

我正在使用SparkSQL进行一些计算。每5分钟就会有一个新的数据帧进入。我需要在最近一周的数据帧上运行计算

这意味着我需要将12*24*7=2016数据帧合并为一个大数据帧,然后运行计算

大小将超过我的内存大小。我的spark集群中的所有节点总共有128G内存,这是不够的


所以我想知道如果数据框太大而无法放入内存,会发生什么?spark会暂时将其交换到磁盘吗?我是否需要明确要求spark进行交换,否则它将自动完成?

您是否有需要读取的2016输入文件?如果是这样,spark的读取函数接受通配符,因此您可以一次读取所有通配符,而不是设置一些循环/读取/合并功能。根据输入文件的不同,内存中数据帧的大小可能比保存文件的大小小得多。因此,您的数据帧可能适合内存


为了回答您的问题,如果Spark内存不足,它将根据需要自动溢出到磁盘

您是否有2016个需要读取的输入文件?如果是这样,spark的读取函数接受通配符,因此您可以一次读取所有通配符,而不是设置一些循环/读取/合并功能。根据输入文件的不同,内存中数据帧的大小可能比保存文件的大小小得多。因此,您的数据帧可能适合内存


为了回答您的问题,如果Spark内存不足,它将根据需要自动溢出到磁盘

可能会有内存问题,也可能有很长的血统。您确实需要为此类作业设置检查点。这项工作很可能会失败。为了回答您的问题,Spark会自动将数据写入磁盘(tmp),您不需要设置它,默认情况下它是打开的(尽管您可以将其关闭)@但是,由于内存不足,代码确实失败了。我提出了一个新问题来描述我的处境。你能帮我看看并给点建议吗?@eliasah谢谢。我的代码确实出了内存问题。你能给我一些关于这种模式的建议吗?对不起,我不能回答这个问题!它太宽了,可以是任何东西。打开一个新问题,描述您的问题。在我看来,大卫已经回答了这个问题,因为你已经接受了它。这可能是内存问题,也可能是长期的血统。你真的需要为这种工作设置检查点。这项工作很可能会失败。为了回答您的问题,Spark会自动将数据写入磁盘(tmp),您不需要设置它,默认情况下它是打开的(尽管您可以将其关闭)@但是,由于内存不足,代码确实失败了。我提出了一个新问题来描述我的处境。你能帮我看看并给点建议吗?@eliasah谢谢。我的代码确实出了内存问题。你能给我一些关于这种模式的建议吗?对不起,我不能回答这个问题!它太宽了,可以是任何东西。打开一个新问题,描述您的问题。在我看来,大卫已经回答了这个问题,因为你已经接受了它