次のようなファイル パスに HDFS の Avro 形式のデータがあります/data/logs/[foldername]/[filename].avro
。これらすべてのログ ファイル、つまりフォームのすべてのファイルに対して Hive テーブルを作成したいと考えています/data/logs/*/*
。(それらはすべて同じ Avro スキーマに基づいています。)
flag を使用して以下のクエリを実行していますmapred.input.dir.recursive=true
。
CREATE EXTERNAL TABLE default.testtable
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 'hdfs://.../data/*/*'
TBLPROPERTIES (
'avro.schema.url'='hdfs://.../schema.avsc')
LOCATION
ネストを少なくする、つまり'hdfs://.../data/[foldername]/'
特定のフォルダー名に変更しない限り、テーブルは空になります。これは、 のネストされていないパスで問題なく機能しましたLOCATION
。
これらすべての異なる [foldername] フォルダーからデータを取得できるようにしたいと考えています。ネストされたディレクトリで再帰的な入力選択をさらに進めるにはどうすればよいですか?