xmlファイルをavroに変換したい。データはxml形式で、最初にカフカのトピックにヒットします。次に、flumeまたはspark-streamingを使用して、xmlからavroに変換し、hdfsにファイルを格納することができます。私はクロウデラの環境を持っています。スパムストリーミングやflumeでXmlをAvroからKafka、hdfsに変換する
avroファイルがhdfsにヒットしたとき、後でそのファイルをハイブテーブルに読み込む必要があります。
私はこれを行うための最良の方法は何ですか? spark-avro(これはスパークストリーミングなし)のような自動化されたスキーマ変換を試みましたが、spark-avroはデータを変換しますが、ハイブはそれを読み取ることができません。 Spark avroはxmlをdataframeに変換し、次にdataframeからavroに変換します。 avroファイルは私のsparkアプリケーションでのみ読み取ることができます。これを正しく使用しているかどうかはわかりません。
私はavroスキーマに明示的なスキーマを定義する必要があると思います。これについてxmlファイルにどうやって行くのかは分かりません。それは複数の名前空間を持ち、非常に大規模です。
モルフォラインがxmlを読み込んでavroに変換できるかどうか知っていますか? – Defcon
Morphlineはxmlの内容を読むことができ、avroに書き込むことができます。あなたのユースケースのための直接変換コマンドはありません。あなたはmorphlineの使い方を研究することも、map/reduce/sparkの仕事を計画して各ファイル/レコードを読み込んでavroに変換することもできます。 Morphlineは、バッチ式および水路使用の準備ができています。 – Ramzy