2015-04-10 5 views
0

Я бегу простой запрос в улье основе, и я получаю сообщение об ошибке:Hive Регистрация Ошибка

java.io.IOException: Не удается запустить программу «/ главная/Hadoop/bin/Hadoop» (в директории «/ главная/ec2-пользователь "): ошибка = 13, отказано в

Когда я делаю простой выбор,

select * from million_songs_sample; 

это работает просто отлично. Но когда я включаю соединение, я получаю ошибку.

Вот мой код, который вызывает ошибку:

SELECT a.song as driver_song_id, b.song as also_song_id, 
count(a.play_count) as play_count 
from (
select user, song, play_count 
from million_songs_sample) a 
join (
select user, song 
from million_songs_sample) b 
on a.user = b.user 
where a.song != b.song 
group by a.song, b.song; 
group by a.song, b.user; 

Вот данные в моей таблице:

u1,s10,3 
u1,s11,1 
u1,s15,5 
u1,s17,1 
u1,s19,3 
u2,s10,1 
u2,s12,6 
u2,s19,5 
u3,s11,1 
u3,s12,1 
u3,s13,1 
u3,s14,1 
u3,s17,3 
u4,s10,2 
u4,s12,5 
u4,s19,3 

ответ

0

Это звучит как какой-то вопрос разрешений на временные таблицы - вы нужно будет поговорить с местными жителями, чтобы понять это.

Однако, возможно, переписав запрос без подзапросов будет решить эту проблему:

SELECT a.song as driver_song_id, b.song as also_song_id, 
     count(a.play_count) as play_count 
from million_songs_sample a join 
    million_songs_sample b 
    on a.user = b.user 
where a.song <> b.song 
group by a.song, b.song; 
0

Ответ в том, что вы не можете присоединиться к столу на себя при создании таблицы из хранилища S3. Чтобы обойти это, сначала создайте таблицу TEMP как копию второго соединения, и она работает хорошо.

Смежные вопросы