2017-10-10 1 views
1

データフレームをS3バケットにアップロードする必要がありますが、バケットに対する削除権限はありません。 S3でこの_temporaryディレクトリを作成することを避ける方法はありますか?たぶん、現代のディレクトリにローカルFSを使用し、最後に結果のファイルをS3バケットにアップロードするか、または完全に_temporaryディレクトリを避けるようにするためにはどうか。S3で_temporaryディレクトリを作成しないようにスパークを避ける

ありがとうございます。

答えて

2

データが_temporary/jobAttemptID/taskAttemptID/に書き込まれた後、コミットタスク/ジョブの実行中にdestのディレクトリに名前が変更されます。

できることは、あなたの仕事のためにhdfsに書き込んで、distcpを使ってコピーすることです。これには多くのメリットがあります。「s3nまたはs3aコネクタからのデータ損失のリスクを逃さない一貫したファイルシステム」

+0

hdfsへのパーティション書き込み中の同様の動作、つまりdf .write.partitionBy(keys).parquet( '/ location') ここに代替手段はありますか? – autodidacticon

+0

タスクが並行して実行され、再試行によって障害が修正されるように、一時ディレクトリが使用されます。 rename()はHDFS上で高速でアトミックなので、心配することはありません –

関連する問題