Я бегу Apache Hadoop 2.6.0 на Ubuntu 14.0 и У меня есть таблица, созданная в улье 0.13.0 как:HiveQL запрос не возвращает результатов и никаких ошибок
CREATE TABLE IF NOT EXISTS recipes_hive.cuisine (
ID INT COMMENT 'Cuisine ID.',
name STRING COMMENT 'Cusine name - primary key.',
area STRING COMMENT 'Name of the area of origin - foreign key.',
scope STRING COMMENT 'Either country or area.')
COMMENT 'Table containing cuisines data.'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
И заполнить ее данными с заявлением :
LOAD DATA LOCAL INPATH 'path_to_file/CUISINE.csv'
OVERWRITE INTO TABLE recipes_hive.cuisine;
В моей базе данных есть несколько таких таблиц, которые были созданы и заполнены той же процедурой. При выполнении простых запросов, как:
SELECT * FROM cuisine
или даже при определенных условиях в ИНЕКЕ я получаю результаты, как ожидается, но работает более сложные запросы, которые я получаю приседать. Например:
SELECT cuisine.name, SUM(IF (ingredient.category = "fruit",1,2))/count(*) AS PERC
FROM cuisine JOIN recipe ON recipe.cuisine = cuisine.name JOIN part_of ON part_of.id_recipe = recipe.id JOIN ingredient ON ingredient.name = part_of.ingredient
GROUP BY cuisine.name
ORDER BY PERC DESC
, или:
SELECT ingredient.id, ingredient.name
FROM cuisine JOIN recipe ON recipe.cuisine = cuisine.name JOIN part_of ON part_of.id_recipe = recipe.id JOIN ingredient ON ingredient.name = part_of.ingredient
WHERE ingredient.id IN (
SELECT ingredient.id
FROM cuisine c JOIN recipe ON recipe.cuisine = c.name JOIN part_of ON part_of.id_recipe = recipe.id JOIN ingredient ON ingredient.name = part_of.ingredient
WHERE c.name = "Pakistan") AND cuisine.name = "Bangladesh"
Первый пример вычисляет некоторый процент, а второй проверки для взаимных элементов.
MapReduce и Hadoop получают вызовы должным образом, и они не возвращают ошибки. Выход заканчивается на:
Execution completed successfully
MapredLocal task succeeded
OK
Time taken: 122.119 seconds
Я проверил сеть, и у людей были подобные проблемы, как у меня. Я проверил:
Hive Table returning empty result set on all queries
, но не смог получить мой вопрос решен. Фактически данные находятся в HDFS, и, как уже упоминалось, они работают над простыми запросами.
Так или есть что-то не так с моим экземпляром Hive или мои запросы написаны неправильно.
Любая помощь была бы принята с благодарностью. С уважением.
Как насчет разрыва запроса на небольшие временные таблицы? Или есть требование получить результат в одном запросе? – Tammy
Не требование, но я хотел бы сделать это в одном запросе, потому что я делаю сравнение времени выполнения запроса на трех разных системах, и я хотел бы, чтобы он был унифицирован. – user3745794