想要将table1与table2连接,但希望以与table2相同的顺序输出行,但我得到的输出与table1相同

时间:2015-07-30 06:33:29

标签: hadoop hive hiveql

这里的数据类型是字符串而不是整数。

蜂房> 从table1中选择*;

2,       1 \t
2,       2 \t
2,       3 \t
2,       4 \t
2,       5 \t
3,       1 \t
3,       2 \t
3,       3 \t
3,       4 \t
3,       5 \t
4,       1 \t
4,       2 \t
4,       3 \t
4,       4 \t
4,       5 \t
5,       1 \t
5,       2 \t
5,       3 \t
5,       4 \t
5,       5 \t
6,       1 \t
6,       2 \t
6,       3 \t
6,       4 \t
6,       5 \t

蜂房> 从table2中选择*;

3,       1 \t
3,       2 \t
4,       2 \t
4,       1 \t
4,       0 \t

在上面的表中,我只希望以下序列中的行作为inn table2: 好 3,1 \ t 3,2 \ t 4,2 \ t 4,1 \ t

但是当我在查询下面运行时,我会得到不同的结果。 从table2选择t2.col1,t2.col2 t2在t2.col1 = t1.col1上连接table1 t1,其中t2.col2 = t1.col2;

3,       1 \t
3,       2 \t
4,       **1** \t
4,       **2** \t

正确的Hive查询应该是什么,以获得结果,因为它们在表2中按顺序排列。

1 个答案:

答案 0 :(得分:0)

RDBMS表表示未排序的数据集。返回的订单行是任意的,如果导出/导入表,重建索引,某些内部缓存的某些状态更改等,实际上可能会更改。

如果行的顺序对您很重要,则必须在order by子句中明确指定所需的顺序。