【发布时间】:2015-12-02 16:33:21
【问题描述】:
table 1 -
name bal map<String,String> year
abc 24000 {car : honda, company : boa} 2015
ac 21000 { car:honda} 2015
def 23000 {car:honda, company: boa} 2015
abc 21000 {car : honda, company : boa} 2014
ac 20000 { car:honda} 2014
def 22000 {car:honda, company: boa} 2014
Required Output after self join -
name bal-difference map<String,String>
abc 3000 {car : honda, company : boa}
ac 1000 { car:honda}
def 1000 {car:honda, company: boa}
select
t1.name,t1.mapColumn,(t1.bal-t2.bal)
FROM table1 t1 JOIN table1 t2
ON t1.mapColumn = t2.mapColumn and t1.name = t2.name
我想对地图列上的表和 hive 中的名称执行自联接。这样我就可以执行示例输出中看到的平衡差异。
我尝试加入,但它没有提供所需的列。我想了解 join 如何处理复杂的数据类型(在我的案例中)。
【问题讨论】:
-
你做了什么? “没有提供必需的列”是什么意思,即它缺少什么?
-
@mark91 更新了更多细节。