SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id'
Posted
技术标签:
【中文标题】SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 \'id\'【英文标题】:SemanticException [Error 10085]: JOIN with a LATERAL VIEW is not supported 'id'SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id' 【发布时间】:2019-02-12 13:06:12 【问题描述】:我从我的上级那里收到了一个代码,该代码正在处理旧的 Hive 集群。我正在开发一个新集群并尝试使用 Putty 'bf mycode.sql' 上的直线功能运行它会引发错误:
错误:编译语句时出错:FAILED: SemanticException [错误 10085]:不支持使用 LATERAL VIEW 的第 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;
知道我应该怎么做吗?
【问题讨论】:
新旧hive集群的版本是多少 【参考方案1】:更改您的查询后尝试如下:
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
以更好地理解这两个版本。
【讨论】:
谢谢,但这对我不起作用。虽然我通过将函数拆分为 2 个函数来解决这个问题。【参考方案2】:如果有人遇到这个问题,这对我有用。
create table myTable as select distinct AtypeId
,cast(from_unixtime(t.timestamp) as date) as date
,t.id
,t.marketid
from File1 LATERAL VIEW explode(eventlist) exploded_table as t
order by AtypeId,date;
create table myTable2 as select distinct AtypeId
,date
,C
,id
,marketid
from myTable
inner join File2
on oldID=id;
【讨论】:
以上是关于SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id'的主要内容,如果未能解决你的问题,请参考以下文章
Hive 给出 SemanticException [错误 10014]:运行我的 UDF 时
编译语句时出错:FAILED:SemanticException [错误 10036]:列名重复:p_id
编译语句时出错:FAILED:SemanticException [错误 10128]:第 4:7 行尚不支持 UDAF 位置
失败:SemanticException 生成 Map Join 任务错误:无法通过异常生成新的 mapJoin 运算符:索引:0,大小:0