【发布时间】:2021-07-20 15:40:29
【问题描述】:
我正在 S3 上的 parquet 文件上创建一个外部 Hive 表。命令看起来像
CREATE EXTERNAL TABLE userinfo(
user_id string,
last_name string,
first_name string
)
PARTITIONED BY (
yr string,
mo string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://mybucket/basedir/'
TBLPROPERTIES (
'serialization.null.format'='');
alter table userinfo add IF NOT EXISTS partition (yr='2021', mo='07');
此时,如果我运行“select count(*) from userinfo”,我会得到 0 作为结果。但如果我再跑
ANALYZE TABLE userinfo PARTITION(yr='2021', mo='07') COMPUTE STATISTICS;
然后重新运行“select count(*)...”,我得到了预期的行数。
这不是一个阻碍,但它让我觉得我正在做某事/没有做某事导致这种奇怪的行为。欢迎任何见解。
【问题讨论】: