df.write.csv("s3a://mybucket/mytable")
私は明らかにファイル/オブジェクトが書かれている場所を知っていますが、S3の最終的な一貫性の保証のために、その場所からリストを取得するとすべての(または任意の)作成したばかりのファイルの私がファイル/オブジェクトのリストを手に入れたら、Redshift COPYコマンドのマニフェストファイルを準備して、最終的な整合性について心配する必要はありません。これは可能でしょうか?もしそうなら、どうですか?DataFrameが書き込まれたとき、またはどこかに火花を保存したときにファイルのリストを取得することは可能ですか?
答えて
spark-redshift
ライブラリはあなたのためにこれの世話をすることができます。 https://github.com/databricks/spark-redshift/blob/1092c7cd03bb751ba4e93b92cd7e04cffff10eb0/src/main/scala/com/databricks/spark/redshift/RedshiftWriter.scala#L299
編集:df.coalesce(fileCount)
を使用して既知の数のファイル部分を出力することで、一貫性についてさらに心配する必要はありません(Redshiftの場合、複数のクラスタ内のスライスの数)。次に、Sparkコードに表示されているファイルの数と、Redshift stl_load_commits
にロードされているファイルの数を確認できます。
これは、一貫性のリスクを認識することが良いことです。遅れて作成された可視性と削除されたオブジェクトがまだ見つかっているリストでそれを得ることができます。
AFAIK、タスクの出力ディレクトリに必要なものをタスクが生成できる場所として、作成されたファイルのリストを取得することはできません。リストアおよびコピーによってマーシャリングされ、最終出力ディレクトリ
になります。 S3(S3mper、s3guard、など)の上の一貫性層が存在しない場合には、あなたは破片が追いつくことを可能にするために、「ビット」の&スピンを読むことができます。私は「ちょっと」の良い価値が何であるかについて、良い考えを持っていません。
しかし、fs.write.csv()
を呼び出すと、タスク出力をジョブディレクトリに伝播するために使用されたコミッタ内の不整合をリストすることで捕捉された可能性があります。それはS3Aでリスト+コピーを介して行われています。まだ、)(S3リスト矛盾するので、脆弱FileSystem.listStatusを呼んだ
なぜ投票?どうしたの?私は詳細を伝えれば修正します。 –
あなたはdownvoteを得た理由を私は知らない、私は(私はEMRFSのだけ知っていた)は考えが存在しなかった一貫性層についての良い多くの情報を提供しました。あなたの最後の文章では、あなたが中文を終えたように見えます。 – SourceSimian
- 1. generalPasteboardに何かが書き込まれたときに通知を受けることはできますか?
- 2. が火花クラスタをするために申請書を提出することはできませんコードで
- 3. Javaでファイルに書き込むときに、ファイルをフォルダに保存することはできません。
- 4. ファイルに書き込むことはできませんが、テキストに書き込むことができます
- 5. Formatterでファイルに書き込むことはできますか?
- 6. Scalaが保存したモデルを読み込むことはできますか?
- 7. 私はどのように私のページに書かれたリッチテキストフォーマットを保存することができます
- 8. iPhoneフォトライブラリに保存された画像のEXIFデータを書き込んだり書き換えたりすることは可能ですか?
- 9. 文字列がどこかに書き込まれたときの動作
- 10. Android:onRetainNonConfigurationInstanceによって描画可能ビットマップまたはビットマップを保存することはできますか?
- 11. レンダリングされたhtmlをRedisに保存することはできますか?
- 12. C++でファイルを作成するとき、作成されたファイルはどこに保存されますか?
- 13. Pouchdbはどこに私たちのローカルPCに添付ファイルを保存しましたか?どのフォルダにチェックすることができますか?
- 14. ファイルは書き込み可能ですが、時にはエラー:「ストリームを開くことに失敗しました:許可が拒否されました」
- 15. この形式のXMLファイルに書き込むことはできますか?
- 16. csvファイルに書き込むことはできますが、追加することはできません。
- 17. アップロードされたファイルをファイルシステムに保存せずにPHPで受け取ることはできますか?
- 18. ログファイルにアサートメッセージを書き込むことはできますか?
- 19. サンドボックス化されたMacアプリはどこにファイルを保存できますか?
- 20. IOS - UISaveVideoAtPathToSavedPhotosAlbumが保存されたビデオパスを返すことはできますか?
- 21. ソートされたリストを新しいファイルに書き込むことはできません。
- 22. UserDeletedRowイベントが発生したときにデータグリッド行からデータを取得することはできますか
- 23. log4perlはどのようにしてSTDERRとファイルに同時に書き込むことができますか?
- 24. 私はそれをキャッチした後に、例外スタックトレースをerlangに書き込むことができますか?
- 25. 列に埋め込まれたリストと範囲をどのように扱うことができますか?
- 26. Response.OutputStreamに書き込むときに壊れたXLSXファイルを取得する
- 27. IDを取得したときのように他のアプリと対話することはできますか?
- 28. Lua関数からCでオープンされたファイル記述子に書き込むことはできますか?
- 29. マウスの動きが止まったときにイベントをトリガすることは可能ですか?
- 30. オフラインモバイルアプリケーション - ローカルに保存されたJSONファイルを読み込むことはできますか?
。 –
注() '出力に知られているファイルは –
が火花赤方偏移ライブラリは、問題を無視することを選択したことを心配、しかし、いくつかの興味深いの回避策カウント'合体の使用に関する追加しました。それは、スパークが実際にマニフェストを書くことができる機能を持っているように思えます - ドライバを介して単一のファイルに、ワーカーからのディレクトリではなく、それはこの問題を解決するだろう。 – SourceSimian