#hadoop #hive
Вопрос:
Я создаю внешнюю таблицу улья и добавляю раздел по
create external table tbA (
colA int,
colB string,
...)
PARTITIONED BY (
`day` string)
stored as parquet;
alter table tbA add partition(day= '2021-09-04');
Затем я помещаю файл parquet в целевой каталог HDFS с помощью hdfs dfs -put ...
Я могу получить ожидаемые результаты, используя select * from tbA
in IMPALA
.
В Hive
, я могу получить правильный результат при использовании select count(1) from tbA
, однако, когда я использую
select * from tbA limit 10
Он вообще не возвращает никакого результата.
Если что-то не так с файлом parquet или каталогом, IMPALA
не следует получать правильный результат и Hive
можно отсчитывать номера строк… Почему select * from ...
ничего не показывает? Любая помощь приветствуется.
Кроме того, при запуске select distinct day from tbA
он возвращает 2021-09-04
запущенный select * from tbA
, он возвращает данные с днем = 2021-09-04
Кажется, этот раздел распознан неправильно? Я повторил попытку удалить раздел и использовать msck repair table
, но все еще не работает…
Комментарии:
1. В импале вы можете попробовать
invalidate metadata tab
? А затем проверьте свои sqls.2. Привет @KoushikRoy. Я попробовал ваш cmd, и impala все еще работает, как и ожидалось. Теперь Hive не может отображать данные.
3. в улье вы можете попробовать
analyze table tab compute statistics
.