繁体   English   中英

如何从具有特定分区的配置单元中选择数据?

[英]how to select data from hive with specific partition?

大家。 这是与蜂巢的互动:

hive> show partitions TABLENAME
pt=2012.07.28.08/is_complete=1
pt=2012.07.28.09/is_complete=1
pt=2012.07.28.10/is_complete=1
pt=2012.07.28.11/is_complete=1
hive> select * from TABLENAME where pt='2012.07.28.10/is_complete=1' limit 1;
OK
Time taken: 2.807 seconds
hive> select * from TABLENAME where pt='2012.07.28.10' limit 1;
OK
61806fd3-5535-42a1-9ca5-91676d0e783f    1.160.243.215.1343401203879.1   2012-07-28 23:36:37
Time taken: 3.8 seconds
hive>

我的问题是为什么第一个选择无法获取数据?

“is_complete”是一个与“pt”类似的列,因此正确的查询是:

select * from TABLENAME where pt='2012.07.28.10' and is_complete='1' limit 1;

如果您使用的是Ambari,可以查询如下

select * from TABLE NAME WHERE PARTITION NAME and AND ANOTHER PARTITION NAME LIMIT 10

这里的分区与表关联,因此我们直接将它们视为表(简单类比)。 这里“/”符号告诉它另一个文件夹目录。 每个分区表数据将存储在相关目录中。 如果我们有像下面这样的分区

year=2017/month=11/day=1/part=1

然后我们可以使用

select * from TABLE NAME where year=2017 AND month=11 AND day=1 AND part=1 LIMIT 10;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM