我在文件路径中的HDFS中有Avro格式的数据,如:/data/logs/[foldername]/[filename].avro
.我想在所有这些日志文件上创建一个Hive表,即表单的所有文件/data/logs/*/*
.(它们都基于相同的Avro架构.)
我用标志运行以下查询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]/'
与某个foldername.对于较少嵌套的路径,这没有问题LOCATION
.
我希望能够从所有这些不同的[foldername]文件夹中获取数据.如何在嵌套目录中进一步进行递归输入选择?