Hive 配置单元中区分大小写的分区列

Hive 配置单元中区分大小写的分区列,hive,Hive,我需要在列名为大写的列上创建分区。但是,配置单元会隐式地将所有列名转换为小写。我无法在我的select*查询中获取数据。我无法将文件夹名称更改为小写。下面是我正在使用的Create查询: CREATE EXTERNAL TABLE db.ALERT_DS_Hive_Test PARTITIONED BY (PROC_ID String) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' WITH SERDEPROPE

我需要在列名为大写的列上创建分区。但是,配置单元会隐式地将所有列名转换为小写。我无法在我的
select*
查询中获取数据。我无法将文件夹名称更改为小写。下面是我正在使用的
Create
查询:

CREATE EXTERNAL TABLE db.ALERT_DS_Hive_Test
PARTITIONED BY (PROC_ID String) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH SERDEPROPERTIES ('casesensitive'='PROC_ID')
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '/user/sam/hive-test/ALERT_DS.avro/' 
TBLPROPERTIES ('avro.schema.url'='/user/sam/hive-test/ALERT_DS.avsc');

为什么列名需要大写?在
select*...
query中有什么错误?根据定义,分区列不是AVRO模式的一部分。因此,您的
CREATE TABLE
毫无意义——配置单元并不真正关心基表(不包含数据)的位置;它关心的是分区列表,您将使用
ALTER TABLE
命令声明这些分区,每个分区都有不同的位置。如果您真的想使分区列区分大小写,只需使用常规语法,即用反引号将其括起来--
partitioned by(`WTF`String)
我尝试了后引号选项,但当我对分区列运行“描述格式查询”时,它仍然会变为小写。