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 ファイルでこれを行う方法がわかりません。複数の名前空間があり、非常に大規模です。