hive 尝试连接表时如何获取非前置列

pes8fvy9  于 2022-12-12  发布在  Hive
关注(0)|答案(1)|浏览(135)

我有hive表t1(列a,列b)和表t2(列c,列d),当我处理时:
create table t3 as select * from t1 join t2 on t1.a=t2.c
我总是得到这样的结果:

show table t3;
t1.a t1.b t2.c t2.d
1    3    5    7
2    4    6    8

t3列将如下所示:t1.a t1.b t2.c t2.d我怎样才能得到一个没有t1.t2的表(t3),它有a,b,c,d列?请帮助!
得到具有列a、b、c、d而没有t1.t2的表(t3)。

5uzkadbs

5uzkadbs1#

hive应该在t3中命名列,如a,B,c,d...如果你正在使用的版本不这样做,让我们知道hive版本。
作为一种解决方法,您可以始终提及列名称,这样可以更好地排列和控制列。

CREATE TABLE IF NOT EXISTS p( x STRING ,y string, z int);
CREATE TABLE IF NOT EXISTS st( a STRING ,b string, c int);
CREATE TABLE t1 as select * from st join p on a=x;
describe t1;

这是我的输出。你可以看到t1有很好的列名。
也没有类似show table命令,您可以使用describe mytable;

相关问题