我在 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
.
我希望能够从所有这些不同的 [文件夹名] 文件夹中获取数据。如何使递归输入选择在我的嵌套目录中走得更远?