我从上级那里收到了一个在旧的Hive Cluster上工作的代码。我正在研究一个新集群,并尝试在Putty'bf mycode.sql'上使用beeline函数运行它,引发错误:
错误:编译语句时出错:失败:SemanticException [错误10085]:不支持带有横向视图的第6:24行JOIN 'id'(状态= 42000,代码= 10085)
create table myTable as select distinct AtypeId
,cast(from_unixtime(t.timestamp) as date) as date
,C
,t.id
,t.marketid
from File1 LATERAL VIEW explode(eventlist) exploded_table as t
join File2
on oldID=t.id
order by AtypeId,date;
知道我应该怎么做吗?
答案 0 :(得分:0)
按如下所示更改查询后尝试:
create table myTable as
select t.* from
(
select distinct
AtypeId
,cast(from_unixtime(t.timestamp) as date) as date
,C
,t.id
,t.marketid
from
File1 LATERAL VIEW explode(eventlist) exploded_table
) as t join File2 on oldID=t.id
order by AtypeId,date;
在无法同时使用lateral view
和map join
的情况下,将连接和横向视图一起使用存在一定的限制。
我怀疑的一件事是,在较旧的版本中,它可能在联接中做了一些不同的事情,因此没有引发任何错误。您需要查看两个版本的explain plan
才能更好地理解它。
答案 1 :(得分:0)
如果有人遇到问题,这对我有用。
Critical , 13
High , 114
Medium , 431
Low , 4484