该问题通常是由于数据集缺少特定的属性而引起的。您需要在您的分区分割中包含的属性必须在表定义中加入和投影中加入。例如,您可能需要将“s3:objectKey”附加到分区名的结尾。以下是示例代码:
CREATE EXTERNAL TABLE my_table ( col1 STRING, col2 INTEGER, col3 TIMESTAMP ) PARTITIONED BY (year INT, month INT, day INT, hour INT) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ('separatorChar' = ',','quoteChar' = '\"', 'escapeChar' = '\\') LOCATION 's3://my-bucket/my-folder/';
ALTER TABLE my_table ADD PROJECTION (hour) PARTITION (year = 2022, month = 2, day = 6, hour = 0) WITH ( bucket_count=8, column_projection = 'hour:STRING', sort_columns = 'hour ASC', format = 'parquet', compressed = true );
如果您的表已经定义了必需的属性但仍收到此错误,则需要确保定义和分区的大小写匹配。您可以通过运行“MSCK REPAIR TABLE my_table”命令来获得所需的属性名称并自动更新表元数据。