sparkを使用して大きなリレーショナル表の内容をコピーし、パーキング形式(区切りなし)でパーティション化されたハイブ表に書き込む最もメモリ効率のよい方法は何でしょうか。私は基本的なスパークのアプリを持っていると私はスパークのjdbcでいくつかの他の調整を行っているが、リレーショナルテーブルのデータはまだ0.5 TBと20億レコードですので、私は全テーブルを怠惰に読み込むことができますが、メモリの問題にぶつかることなく日付でパーティションを作成し、hdfsに保存します。 jdbc load()
がsparkからすべてをメモリにロードするので、データベースクエリの日付をループすることを考えていましたが、メモリが不足していないことを確認する方法がまだわかりません。スパークとJDBC:大きな表を繰り返してhdfsに書き込む
0
A
答えて
0
Sparkを使用する必要がある場合は、アプリケーションにdate
というパラメータを追加して日付ごとにテーブルをフィルタリングし、Sparkアプリケーションを日付ごとにループで実行できます。このループには、bashやその他のスクリプト言語を使用できます。
これはのようになります。
- 日付でforeachの日
-
date
パラメータ - と、アプリケーションが
filter
方法 - を使用して
date
によりspark.read.jdbc
- フィルタでDBテーブルを読みますHDFSに結果を0で書き込み
-
別のオプションは、行を反復処理し、HDFSにつながる保存するJDBCおよびDBカーソルを使用してScalaのアプリケーションを実装、例えば、異なる技術を使用することです。 Scalaを使用してParquetフォーマットへの書き込みやHDFSへの保存に関する問題を解決する必要があるため、これはより複雑です。私が望むのであれば、私はParquetフォーマットへの書き込みを担当するScalaコードを提供することができます。
関連する問題
- 1. ブロックサイズより大きなファイルをhdfsに書き込む
- 2. ファイルからオブジェクトのArrayListを繰り返し書き込む
- 3. HDFSにランダムファイルを書き込む - PySpark
- 4. Javaでhdfsにファイルを書き込む
- 5. HDFS内にMetaDataを書き込む
- 6. HadoopでHDFSのファイルに書き込む
- 7. スパーク:RDDの各レコードをHDFSディレクトリの個々のファイルに書き込む
- 8. スパークS3に書き込むV4 SignatureDoesNotMatchエラー
- 9. ストーム - 圧縮を使用してHDFSに書き込む
- 10. Pythonを使用してHDFSに書き込む
- 11. BufferedOutputStreamを使用して大きなファイルを書き込む
- 12. のデータの書き込みを繰り返してのpython
- 13. 大きなファイルをPythonで修正して書き込む
- 14. Spark/Scalaを使用してHDFSファイルの繰り返し書き込みを使用する
- 15. 大きなファイルを繰り返すpowershell
- 16. HadoopがHDFSに不完全なファイルを書き込む
- 17. 行のデータを繰り返さずにテキストファイルに書き込む方法は?
- 18. SqoopでMongoDBからデータを抽出し、HDFSに書き込む?
- 19. 正確な行がないxlsxwriterを繰り返し使用してデータを書き込む方法:列座標?
- 20. jdbcドライバを使用してトランザクションを書き込む方法は?
- 21. Python:キーと等しいヘッダの辞書からcsvファイルに繰り返し書き込む
- 22. バッキングフィールドでプロパティを書き込むなどの繰り返しタスクを自動化できますか?
- 23. Excelに非常に大きな数値を書き込む
- 24. スパークがハイブに書き込まない
- 25. 大きなパンダのデータフレームをSQL Serverデータベースに書き込む
- 26. 大きなデータをレディスキャッシュに書き込む
- 27. 未知のサイズの大きなブロブをSQLiteに書き込む
- 28. 非常に大きなファイルを書き込むIOError
- 29. 大きなファイルをSQL Server FILESTREAMに書き込む方法は?
- 30. 大きな文字列をテキストファイルに書き込む
しかし、もし私が日付の配列をループし、それらの日付を通して 'jdbc.read'をループしても、連続した' load() '文でメモリを連続的に埋め続けるのではないでしょうか。何か? – horatio1701d
私はこのループをスクリプト言語、例えばbashで実行してSparkアプリケーションを無効にすることを意味するので、Scalaでこのループを実装することを意味するわけではありません。 –
は意味があります。ありがとうございました。 – horatio1701d