как выбрать данные из улья с определенным разделом?

каждый. вот взаимодействие с ульем:

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>

Мой вопрос в том, почему первый выбор не может получить данные?


person Tim    schedule 28.07.2012    source источник


Ответы (2)


«is_complete» — это такой же столбец, как и «pt», поэтому правильный запрос:

select * from TABLENAME where pt='2012.07.28.10' and is_complete='1' limit 1;
person Paul M    schedule 28.07.2012

Если вы используете 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;
person Arun Goudar    schedule 09.07.2018