首先,我在配置单元中创建一个表:
CREATE TABLE `test5`.`meta_increment` (
`table_name` string,
`date_modified` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' WITH SERDEPROPERTIES ("path"="hdfs://myhdfs/warehouse/tablespace/managed/hive/test5.db/meta_increment")
STORED AS PARQUET
TBLPROPERTIES ('numFiles'='1', 'spark.sql.create.version'='2.3.0', 'spark.sql.sources.provider'='parquet', 'spark.sql.sources.schema.numParts'='1', 'spark.sql.sources.schema.part.0'='{\"type\":\"struct\",\"fields\":[{\"name\":\"table_name\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"date_modified\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}}]}', 'totalSize'='700')
GO
然后我执行查询:
select max(date_modified) from test5.meta_increment where table_name='shopsNifi'
得到结果:
_c0
1 null
为什么有一行?我认为应该没有行,因为表是空的。 (我的情况是:我想获取表的最大日期,并获取增量数据。)
答案 0 :(得分:0)
AVG,SUM等聚合函数的设计方式是,如果表为空,它们将返回单个列。