是否可以基于avro文件在配置单元中创建外部表,该文件还为目录分区添加列:
假设我有数据存储在 /data/demo/dt=2016-02-01
等等。然后我尝试了以下操作,但从表中选择时得到0行:
CREATE EXTERNAL TABLE demo
PARTITIONED BY (date STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS AVRO
LOCATION '/data/demo/'
TBLPROPERTIES ('avro.schema.url' = 'hdfs:///path/to/schema.avsc');
我试过了,没带枪 PARTITIONED BY
子句,然后我得到了记录,但显然没有 key=value
目录分区。这有可能吗?
1条答案
按热度按时间sdnqo3pr1#
因为分区名称在您的案例中
dt
,不是date
,你必须使用PARTITIONED BY (dt string)
,然后仍然需要将分区添加到元存储:如果您有多个分区,可以修复表,它会自动添加这些分区: