Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 如何将分区分配给Spark中的任务_Apache Spark_Distributed Computing - Fatal编程技术网

Apache spark 如何将分区分配给Spark中的任务

Apache spark 如何将分区分配给Spark中的任务,apache-spark,distributed-computing,Apache Spark,Distributed Computing,假设我正在从一个S3文件夹中读取100个文件。每个文件的大小为10 MB。当我执行df=spark.read.parquet(s3路径)时,文件(或者更确切地说是分区)是如何在任务之间分布的?例如,在这种情况下,df将有100个分区,如果spark有10个任务正在运行以将此文件夹的内容读取到数据帧中,那么如何将这些分区分配给这10个任务?它是以循环方式进行的,还是在基于范围的分布中,每个任务获得的所有分区的比例相等,还是其他什么?任何指向相关资源的指针都会非常有用。谢谢。任务与分区的数量成正比。

假设我正在从一个S3文件夹中读取100个文件。每个文件的大小为10 MB。当我执行df=spark.read.parquet(s3路径)时,文件(或者更确切地说是分区)是如何在任务之间分布的?例如,在这种情况下,
df
将有100个分区,如果spark有10个任务正在运行以将此文件夹的内容读取到数据帧中,那么如何将这些分区分配给这10个任务?它是以循环方式进行的,还是在基于范围的分布中,每个任务获得的所有分区的比例相等,还是其他什么?任何指向相关资源的指针都会非常有用。谢谢。

任务与分区的数量成正比。

Spark尝试直接从原始分区对行进行分区,而不给驱动程序带来任何东西

分区逻辑是从随机选取的目标分区开始,然后以循环方式将分区分配给行。请注意,为每个源分区选择“开始”分区,可能会发生冲突


最终的分布取决于许多因素:源/目标分区的数量以及数据帧中的行数。

谢谢您的回答。您能详细说明一下分区逻辑是从随机选取的目标分区开始的吗…?也许举个例子会更清楚。