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
Python RDD'上转换的内存使用情况;s在alluxio/spark的超光速子中_Python_Apache Spark_Pyspark_Alluxio - Fatal编程技术网

Python RDD'上转换的内存使用情况;s在alluxio/spark的超光速子中

Python RDD'上转换的内存使用情况;s在alluxio/spark的超光速子中,python,apache-spark,pyspark,alluxio,Python,Apache Spark,Pyspark,Alluxio,假设我们从alluxio内存创建RDD rdd1 = sc.textFile("alluxio://.../file1.txt") rdd2 = rdd1.map(...) rdd2是否驻留在alluxio或spark的堆上 也会有类似的操作(alluxio上的两个PAIRDD) pairRDD1.join(pairRDD2)在alluxio或spark堆上创建新的RDD 第二个问题的原因是我需要加入alluxio上的两个大型RDD。连接会使用alluxio的内存还是RDD会被拉入spark内

假设我们从alluxio内存创建RDD

rdd1 = sc.textFile("alluxio://.../file1.txt")
rdd2 = rdd1.map(...)
rdd2
是否驻留在
alluxio
spark
的堆上

也会有类似的操作(alluxio上的两个PAIRDD)
pairRDD1.join(pairRDD2)
在alluxio或spark堆上创建新的RDD


第二个问题的原因是我需要加入alluxio上的两个大型RDD。连接会使用alluxio的内存还是RDD会被拉入spark内存进行连接(以及结果RDD将驻留在哪里)

Spark变换以惰性方式进行计算。这意味着在需要结果之前,
map()。只有在显式调用RDD上的
cache()
时,RDD才会消耗Spark内存

因此,当您从Alluxio连接2个RDD时,在Alluxio中,只有RDD的源数据是内存。在连接期间,Spark将使用执行连接所需的内存


结果RDD所在的位置取决于您对该RDD所做的操作。如果将生成的RDD写入文件,则该RDD不会在Spark内存中完全具体化,而是会写入文件。如果该文件在Alluxio中,它将在Alluxio内存中,而不是Spark内存中。如果显式调用
cache()

Spark转换是以惰性方式计算的,则生成的RDD将只在Spark内存中。这意味着在需要结果之前,
map()。只有在显式调用RDD上的
cache()
时,RDD才会消耗Spark内存

因此,当您从Alluxio连接2个RDD时,在Alluxio中,只有RDD的源数据是内存。在连接期间,Spark将使用执行连接所需的内存


结果RDD所在的位置取决于您对该RDD所做的操作。如果将生成的RDD写入文件,则该RDD不会在Spark内存中完全具体化,而是会写入文件。如果该文件在Alluxio中,它将在Alluxio内存中,而不是Spark内存中。如果显式调用
cache()

,则生成的RDD将仅在Spark内存中,-
映射的输出将写入OS缓冲区缓存。-操作系统将决定数据是否可以保留在操作系统缓冲区缓存中,还是应该溢出到磁盘。-映射的输出写入操作系统缓冲区缓存。-操作系统将决定数据是否可以保留在操作系统缓冲区缓存中,还是应该溢出到磁盘。