我正在基于hive运行一个简单的查询,并收到错误:
java.io.IOException:无法运行程序“/ home / hadoop / bin / hadoop”(在目录“/ home / ec2-user”中):error = 13,Permission denied
当我做一个简单的选择时,
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 :(得分: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;
答案 1 :(得分:0)
答案是,在从S3存储创建表时,您无法加入表。要解决这个问题,首先要创建一个TEMP表作为第二个连接的副本,它运行良好。