0

サーバーからハイブにデータをエクスポートしたい。Java クラスの形式で 3 レベルのネストされたデータがあります。Avro Tools ReflectData を使用して avro スキーマを作成し、ReflectDatumWriter を使用して avro ファイルにデータを書き出すことができました。Hive では、テーブルを作成し、

TBLPROPERTIES 
  ('avro.schema.url'='hdfs:///schema.avsc');

同じデータを寄木細工の形式でエクスポートする方法があることがわかります http://blog.cloudera.com/blog/2014/05/how-to-convert-existing-data-into-parquet/

それが完了し、寄木細工のファイルに同じデータがあるとしましょう..このエクスポート寄木細工のデータを Hive で照会するにはどうすればよいですか? しかし、ハイブのスキーマを指定するにはどうすればよいですか? ネストされたスキーマ全体を使用して、ハイブに巨大なテーブル作成ステートメントを記述したくありません。スキーマの一部のメンバーに null 値を指定するにはどうすればよいですか? avro スキーマのような寄木細工のスキーマを直接作成し、create table ステートメントを使用して Hive に渡す方法はありますか?

4

1 に答える 1

0

ハイブでデータをクエリするには、ハイブ外部テーブルを作成し、ファイルの場所を指定できます。このような

CREATE EXTERNAL TABLE XXX (...) ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat" OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat" LOCATION '/you/location/here';

Hive メタストアから独立したファイルの生成と、AVRO でできることはデータ ファイルの生成だけであるため、このステートメントを指定しない方法はありません。

于 2014-11-03T06:49:12.840 に答える