hive-createtable通过从不同的表中选择列

kpbwa7wx  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(322)

这是我的Hive表:
表1:

|a |b |c |
----------
|a1|b1|c1|
|a2|b2|c2|
|a3|b3|c3|
|a4|b4|c4|
|a5|b5|c5|

表2:

|x |y |z |
----------
|x1|y1|z1|
|x2|y2|z2|
|x3|y3|z3|
|x4|y4|z4|
|x5|y5|z5|

期望输出:

|a |b |x |y |
-------------
|a1|b1|x1|y1|
|a2|b2|x2|y2|
|a3|b3|x3|y3|
|a4|b4|x4|y4|
|a5|b5|x5|y5|

在Hive里真的有可能吗?任何帮助都将不胜感激,谢谢!

mzsu5hc0

mzsu5hc01#

您似乎想“排列”两个表的行。假设那一列 a 可用于在中订购记录 table1 (resp列) xtable2 ),您可以使用 row_number() 具体如下:

select t1.a, t1.b, t2.x, t2.y
from (select t1.*, row_number() over(order by a) rn from table1 t1) t1
inner join (select t2.*, row_number() over(order by x) rn from table2 t2) t2
    on t1.rn = t2.rn

如果表的行数可能不同,并且您希望保留“其他”行,则只需更改 inner joinfull join .

相关问题