2016-12-02 12 views
0

ファイル数がavroの場所を指す外部Hiveテーブルを作成しました。 create文は問題なく動作し、期待されるカラムを作成しました。ただし、クエリを実行しようとすると、テーブルにはデータがありません。私はいくつかの異なる方法でテーブルを作成しようとしましたが、動作させることができませんでした。また、ディレクトリにavroファイルがあることを確認しました。AVROファイルの外部ハイブテーブルにはデータがありません。

CREATE EXTERNAL TABLE table_name 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
STORED as INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat' 
LOCATION '/path/to/avro/data/' 
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc'); 

CREATE EXTERNAL TABLE table_name 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
STORED as AVRO 
LOCATION '/path/to/avro/data/' 
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc'); 

+0

LOCATION '/ path/to/avro/data /'にags.svroデータとも異なるデータがない限り、ステートメントは正しく のように見えますか? または スキーマとデータファイルの形式が同じであることを確認してください。 –

+0

スキーマは別の場所にあります。私はavroファイルの先頭からスキーマを取得して以来、スキーマは同じだと私は考えています。 – Carlos

答えて

0

(sqoopによって生成された)スキーマファイルが正しくありません。私は "avro-tools getschema"を使って新しいスキーマファイルを作成しました。一度スキーマファイルを使用すると、すべてが期待通りに機能しました。

関連する問題