hadoop - 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|
在蜂巢中真的有可能吗?任何帮助将不胜感激,谢谢!
解决方案
您似乎想“排列”两个表的行。假设该列a
可用于对table1
(resp column x
in table2
)中的记录进行排序,您可以使用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 join
将full join
.
推荐阅读
- javascript - jQuery可拖动,即使我平移或缩放图像,如何将可拖动对象移动到正确位置
- android - 使用 smack 在消息应用程序中实现接收器状态(读取或输入) - Android
- ios - 取消控制器动画转换时不正确的preferredStatusBarStyle
- node.js - UnhandledPromiseRejectionWarning:TypeError:_base64Stream2.default.encode 不是函数
- sql - 在用户选择的特定表上运行一个 MS Access SQL 脚本
- html - 如何使高度相对于宽度
- php - 如何在 php preg_replace 中用双引号括起数字?
- r - 根据R中的序列条件按总和聚合
- apache-spark - 如何配置 spark thrift 用户和密码
- sas - 如何将字符年份转换为 SAS 日期 1/1/Year?