尝试以附加模式将属性上的自动分区Dataframe数据写入外部存储会覆盖镶木地板文件。
我有大量无法一次性加载的数据。因此,我一次循环读取一个文件夹中的数据。在每次迭代中,我都会基于某个属性对数据进行分区,并使用saveAsTable在Amazon S3上编写实木复合地板文件。我发现我的s3文件夹在每次迭代中都消失了。我想将每次迭代中的数据添加到分区文件夹中的蜂巢存储中,以便对数据进行分类,并且只能读取我要处理的类别。
这是我用来保存数据框的命令。
DF.write.partitionBy('Type').format('parquet').mode("append").saveAsTable(('AllComponents', path='s3a://xxx/<Path>')
for Pos1 in HexKey:
folderKey = "{}".format(Pos1)
spark = SparkSession.builder \
.getOrCreate()
if DataSetSchema is None:
log.warn("Reviewing schema")
AllComponentsDF = spark.read \
.format('com.databricks.spark.xml') \
.load('s3a://location' + folderKey + '0/00/*')
DataSetSchema = AllComponentsDF.schema
else:
log.warn("Reading folder {}".format(Pos1))
AllComponentsDF = spark.read \
.format('com.databricks.spark.xml') \
.load('s3a://location/' + folderKey + '0/00/*', schema=DataSetSchema)
AllComponentsDF.write.partitionBy('Type').format('parquet').mode("append").saveAsTable(('AllComponents', path='s3a://spark-cluster-boomi/AllComponents')