簡體   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