簡體   English   中英

將鑲木地板文件寫入現有的 AWS S3 存儲桶

[英]Writing parquet files into existing AWS S3 bucket

版本:emr-5.33.1、pyspark2.4.7

嘗試迭代讀取數據子集,對其進行轉換,然后將它們保存到存儲桶中。 路徑看起來像這樣: {bucket_uri}/folder1/date=20220101/

當沒有這樣的 date=20220101 分區文件夾時可以寫入但是它輸出

pyspark.sql.utils.AnalysisException: 'path ... already exists'

我的代碼如下所示:

output_path = 'bucket_uri/folder1/date=20220101'
for i in range(0, 100, 10):
    pdf = spark.read.parquet(file_list[i:i+10])
    .... doing transformations....
    pdf_transformed.write.parquet(output_path)

我可以通過在每次迭代中將 pyspark df 寫入不同的文件夾bucket_uri/folder1/date=20220101/iteration{i}來添加額外的層,但我想將所有鑲木地板文件保存在一個 bucekt 中。

您需要指定模式 - append 或在將 dataframe 寫入 S3 時覆蓋。 Append 模式將保留現有數據並將新數據添加到同一文件夾,而覆蓋將刪除現有數據並寫入新數據。 所以最后,歸結為是否要保留output路徑中的現有數據。

pdf_transformed.write.mode(“append”).parquet(output_path) #if you want to append data



pdf_transformed.write.mode(“overwrite”).parquet(output_path) #if you want to overwrite the data in the output path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM