我在jupyter筆記本上工作,使用spark 2.0.1創建並在python中將節點spark數據框保存爲s3。該代碼看起來像在火花中重複使用s3存儲桶之前,如何正確移除/清除s3存儲桶?
action = 'CREATE'
if action == 'CREATE':
df = dfA.filter(...)
df = df.join(...)
df.coalesce(4).write.format('parquet').save('s3://my/path')
elif action == 'LOAD':
df = spark.read.parquet('s3://my/path')
我認爲在某些時候,我有一個bug,並寫了一個DF它曾在其4項(4特定查詢)時,它只能有2個(每一條記錄被複制 - 可能是因爲我在加入某些東西時沒有先刪除它)。
重新工作之後,我可以驗證當我刪除舊的s3:// my/path,然後運行創建邏輯以便它可以寫入位置時,我的df擁有我期望的2個項目。
我感到困惑的是,如果我現在運行LOAD邏輯,它應該加載數據幀,我只是錯了2個項目,用s3替換我的df,我得到一個錯誤的4項目的數據幀它。
如果我用新路徑重新開始,s3://my/path2
,那麼這個練習就是創建和加載作品。
這似乎是一個與S3的錯誤,或者可能是火花?
- 不,火花不這樣做。你想保持一個數據集,只保留變量。是的,S3一致性看起來會讓事情變得更糟。 –