Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 pyspark加速对S3的写入_Apache Spark_Amazon S3_Pyspark - Fatal编程技术网

Apache spark pyspark加速对S3的写入

Apache spark pyspark加速对S3的写入,apache-spark,amazon-s3,pyspark,Apache Spark,Amazon S3,Pyspark,我有一个RDD,大约有150K个元素,将其写入S3大约需要5个小时 我想加快速度, 我尝试过,目前使用以下设置调整spark参数: --executor-memory 19g --num-executors 17 --executor-cores 5 --driver-memory 3g 这就是我如何写入S3的方式: rdd.repartition(1).write.partitionBy('id').save(path=s3_path, mode='overwrite', format='j

我有一个RDD,大约有150K个元素,将其写入S3大约需要5个小时 我想加快速度, 我尝试过,目前使用以下设置调整spark参数:

--executor-memory 19g --num-executors 17 --executor-cores 5 --driver-memory 3g
这就是我如何写入S3的方式:

rdd.repartition(1).write.partitionBy('id').save(path=s3_path, mode='overwrite', format='json')

然而,来自各种在线资源的spark参数的所有调整都只缩短了几分钟。我正在寻找如何将运行时间减少50%的方法。问题在于重新分配1。 这样做会迫使Spark只使用一个核心进行写作。 您正在将所有数据放在集群的单个执行器中。 您将使其他16名执行者没有数据或任务

如果要平衡最终输出文件的大小,可以使用重新分区,但要确保使用足够的内核来加快写入速度


在您的示例中,最多有17*5个内核可供编写。例如,如果希望在速度和输出文件数量之间进行折衷,可以按32重新分区。

问题在于按1重新分区。 这样做会迫使Spark只使用一个核心进行写作。 您正在将所有数据放在集群的单个执行器中。 您将使其他16名执行者没有数据或任务

如果要平衡最终输出文件的大小,可以使用重新分区,但要确保使用足够的内核来加快写入速度


在您的示例中,最多有17*5个内核可供编写。例如,如果您想在速度和输出文件数量之间取得平衡,可以按32进行重新分区。

每个文件的数据大小都小于1MB,分区会把一切都搞砸。没有选择。每个文件的数据大小都小于1MB,这会把一切都搞砸。没有选项。我必须使用重新分区(1),因为输出需要写入1个文件。我必须使用重新分区(1),因为输出需要写入1个文件