0

xml ファイルを avro に変換したい。データは xml 形式になり、最初に kafka トピックにヒットします。次に、flume または spark-streaming を使用して、取り込み、xml から avro に変換し、ファイルを hdfs に格納します。Cloudera 環境があります。

avro ファイルが hdfs にヒットしたときに、後でそれらをハイブ テーブルに読み込む機能が必要です。

これを行うための最良の方法は何ですか?spark-avro などの自動スキーマ変換を試しましたが (これは spark-streaming なしでした)、spark-avro はデータを変換しますが、ハイブはそれを読み取ることができません。Spark avro は、xml をデータフレームに変換してから、データフレームから avro に変換します。avro ファイルは、spark アプリケーションでのみ読み取ることができます。これを正しく使用しているかどうかはわかりません。

avro スキーマの明示的なスキーマを定義する必要があると思います。xml ファイルでこれを行う方法がわかりません。複数の名前空間があり、非常に大規模です。

4

1 に答える 1

0

Cloudera を使用している場合 (flume を持っているので、持っているかもしれません)、レコード レベルでの変換に morphline を使用できます。バッチ/ストリーミングを使用できます。詳細については、こちらを参照してください。

于 2016-05-31T17:46:20.067 に答える