Amazon web services s3存储桶中的分区数据格式

Amazon web services s3存储桶中的分区数据格式,amazon-web-services,amazon-s3,pyspark,aws-glue,pyspark-dataframes,Amazon Web Services,Amazon S3,Pyspark,Aws Glue,Pyspark Dataframes,当以分区格式将数据写入S3存储桶时,文件夹将被创建为year=2020/Month=10 我希望文件夹名为year2020/Month10如果加载的是静态分区而不是动态分区,则可以实现预期的输出 示例: df=spark.createDataFrame([(1,'a','2020','10'),(2,'b','2020','10')],['id','name','year','month']) from pyspark.sql.functions import * df.show() #+-

当以分区格式将数据写入S3存储桶时,文件夹将被创建为
year=2020/Month=10


我希望文件夹名为
year2020/Month10

如果加载的是
静态分区
而不是
动态分区
,则可以实现预期的输出

示例:

df=spark.createDataFrame([(1,'a','2020','10'),(2,'b','2020','10')],['id','name','year','month'])

from pyspark.sql.functions import *

df.show()
#+---+----+----+-----+
#| id|name|year|month|
#+---+----+----+-----+
#|  1|   a|2020|   10|
#|  2|   b|2020|   10|
#+---+----+----+-----+

#get year,hour value and assign to variable
year=df.select("year").collect()[0][0]
month=df.select("month").collect()[0][0]

#we are going to create directories 
df.write.format("parquet").mode("overwrite").save(f"year{year}/month{month}")
#year2020/month10/parquet files

为什么要将文件夹命名为这样的名称?spark不提供重命名分区文件夹的选项。这是预期和期望的行为。我们收到相同格式的原始分区文件(year2020/month10),因此我们希望在每个bucketI上保持相同的结构。我在spark中找不到任何关于自定义分区的信息。如果你发现了什么,请自己回答这个问题。