Amazon s3 当逻辑包含在现有代码中时,对S3的写入速度较慢
我有一个PySpark代码,它的最后一步是以拼花格式将数据写入S3。看起来像这样Amazon s3 当逻辑包含在现有代码中时,对S3的写入速度较慢,amazon-s3,pyspark,apache-spark-sql,parquet,Amazon S3,Pyspark,Apache Spark Sql,Parquet,我有一个PySpark代码,它的最后一步是以拼花格式将数据写入S3。看起来像这样 df = generated_by_some_logic df.cache() df.count() df.write.parquet("s3a://bucket-name/abc/") 此df在s3写入之前缓存(缓存肯定会在s3写入之前进行计数) df.write操作大约需要30分钟。 我编写了一个PySpark代码示例: df = spark.read.parquet("s3a:
df = generated_by_some_logic
df.cache()
df.count()
df.write.parquet("s3a://bucket-name/abc/")
此df在s3写入之前缓存(缓存肯定会在s3写入之前进行计数)
df.write操作大约需要30分钟。
我编写了一个PySpark代码示例:
df = spark.read.parquet("s3a://bucket-name/abc/")
df.write.parquet(s3a://bucket-name/testwrite)
写入操作在不到一分钟内完成。
这里的问题是什么?在这两种情况下,数据大小、spark submit和所有其他配置都相同
这里有一个观察:在一个示例中,df有默认的分区数,而在我的示例程序中,它有12个,因为我使用df.rdd.getNumPartitions()进行了检查