如果我查询" SELECT * FROM table"每次运行此查询时,输出的顺序是否始终相同?到目前为止,这是我的观察,但我很好奇是否有任何保证这种行为。
答案 0 :(得分:1)
在这种具体情况下,我认为有保证
Hive中的一些查询不会生成MR作业,而是直接以串行方式对表进行IO
在您的情况下,查询select * from table
将不会生成MR作业(除非table
是视图)。
使用单个进程读取表,从第一个文件读取到最后一个文件,从每个文件的头部读取到最后。因此,我相信无论何时运行查询,这种方式的输出顺序都是相同的。
对于从SQL生成的MR作业,这当然不对。