Jsonオブジェクトとして存在するメッセージをJavaを使用してApache Parquetフォーマットに変換するシナリオがあります。サンプルコードやサンプルが役に立ちます。私がパーケットにメッセージを変換するために見つけたものは、Hive、Pig、Sparkが使用されています。私は、Javaだけでこれらを関与せずに、Parquetに変換する必要があります。JsonオブジェクトをJavaを使用してAVROに変換せずに(Spark、Hive、Pig、Impalaを使用せずに)
4
A
答えて
8
JSONデータファイルをParquetに変換するには、メモリ内の表現が必要です。寄木細工には独自のJavaオブジェクトセットがありません。 AvroやThriftのような他の形式のオブジェクトを再利用します。アイデアは、あなたのアプリケーションがおそらく既に使用しているオブジェクトで、Parquetがネイティブに動作するということです。
JSONを変換するには、Avro のメモリ内オブジェクトにレコードを変換し、それらをParquetに渡す必要がありますが、ファイルをAvroに変換してからParquetに変換する必要はありません。
Avroオブジェクトへの変換は既に行われています(Kite's JsonUtilを参照)。file readerとして使用する準備ができました。変換方法にはAvroスキーマが必要ですが、同じライブラリをinfer an Avro schema from JSON dataに使用できます。
これらのレコードを書き込むには、ParquetAvroWriter
を使用する必要があります。全体のセットアップは次のようになります。
Schema jsonSchema = JsonUtil.inferSchema(fs.open(source), "RecordName", 20);
try (JSONFileReader<Record> reader = new JSONFileReader<>(
fs.open(source), jsonSchema, Record.class)) {
reader.initialize();
try (ParquetWriter<Record> writer = AvroParquetWriter
.<Record>builder(outputPath)
.withConf(new Configuration)
.withCompressionCodec(CompressionCodecName.SNAPPY)
.withSchema(jsonSchema)
.build()) {
for (Record record : reader) {
writer.write(record);
}
}
}
+0
ありがとうブルー。 – vijju
1
関連する問題
- 1. Javaバイトコードにコンパイル(Javaを使用せず)
- 2. ReportViewerを使用せずに.rptを.pdfに変換して変換する
- 3. Mule:XMLをJSONに変換せずに
- 4. 行データを列に変換PIVOTを使用せずにアクセス073
- 5. Swift NSBitmapImageFileTypeを使用せずにNSImageをNSdataに変換する
- 6. インラインJSを使用せずにJava変数をJavascriptに渡す
- 7. jQueryを使用せずにオートコンプリートして
- 8. GSONを使用してJSONをJavaオブジェクトに変換する
- 9. SparkSQLを使用せずにfasterxmlでSparkのJSONを解析する方法は?
- 10. ToArray()を使用せずにメモリリストへのバイトリストを変換
- 11. Sparkを使用せずにParquetの特定の列を読む
- 12. if/loopを使用せずにこのjavaメソッドを変換する
- 13. XmlDocument.Loadxml()関数を使用せずにJSONにXMLをデシリアライズ
- 14. jsonを使用せずにデータベースにデータを表示
- 15. クライアントJavaヒープメモリを気にせずにJavaクライアントを使用してEasticSearchを使用してクエリを行う方法
- 16. jQueryを使用せずにJavaScriptを使用してドロップシャドウを変更する
- 17. サーバーサイドスクリプトを使用せずにjqueryを使用して画像サイズを変更
- 18. )( `アトミック使用せずにピーウィーとの取引を使用して`
- 19. リフレクトを使用せずにJavaオブジェクトをキーと値のペアに変換する方法
- 20. blobstore.create_upload_urlを使用せずにBlobstoreにアップロード
- 21. カフカを使用するときにJavaをAvroに変換して戻す
- 22. Java変換関数/ユーティリティクラスを使用せずに文字列を数値に変換する
- 23. Clickonceを使用せずにVSTOをインストール
- 24. Instagram、APIを使用せずにcetain hashtagのJSONフィードを取得
- 25. Stringを使用せずにJSONオブジェクトを作成する方法は?
- 26. 最初にインスタンス化せずにPHPでオブジェクトを使用する
- 27. jQueryは `.get()`を使用せずに `.get()`を使用します。
- 28. JSON /文字列(IE11を使用)を使用せずにC#のバックエンドに大きなJavaScriptオブジェクトを渡す
- 29. Hiveで既存のハッシュ関数を使用せずにハッシュを計算する
- 30. REを使用せずにDateTimeを使用するには?
ありがとうございました.... – vijju
こんにちはVijju、私は同じソリューションを実装したい、上記のソリューションを正常に実装している場合は、サンプルコードを提供してください。実際に私はちょっと混乱しています。ありがとう。 –