0

メンバー変数として複数のプリミティブとコレクションを持つ複雑な Java (JAXB) オブジェクトを考えてみましょう。Reducer フェーズは、そのようなオブジェクトを < K, V > のペアとして HDFS に出力します。ここで、K は ID であり、V はオブジェクトのシリアル化された形式 (SequenceFileOutputFormat) です。
これらの Java シリアライズ オブジェクトを HDFS/ローカル ロケーションから Hive/Impala にロードすることは可能ですか?

MongoDB には、すぐに使用できる json ドキュメントとして JAXB オブジェクトを格納する機能があります。Hive または Impala で同じことを達成するための助けをいただければ幸いです。

4

1 に答える 1

1

ええ、シーケンスファイルを使用してください。

このリンクが役立ちます: http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/

SerDe インターフェイスを使用すると、レコードの処理方法を Hive に指示できます。SerDe は、Serializer と Deserializer の組み合わせです (したがって、Ser-De)。Deserializer インターフェイスは、レコードの文字列またはバイナリ表現を受け取り、それを Hive が操作できる Java オブジェクトに変換します。ただし、Serializer は、Hive が処理している Java オブジェクトを取得し、Hive が HDFS または別のサポートされているシステムに書き込むことができるものに変換します。通常、デシリアライザーはクエリ時に SELECT ステートメントを実行するために使用され、シリアライザーは INSERT-SELECT ステートメントなどを介してデータを書き込むときに使用されます。

ありがとう

于 2013-06-07T08:48:39.527 に答える