如何在Hive中按原始顺序选择行? [英] How to select the rows in original order in Hive?

查看:504
本文介绍了如何在Hive中按原始顺序选择行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从具有确定数字的原始行中的mytable中选择行。
我们知道,关键词'limit'会随机选择行。 mytable中的行按顺序排列。我只想按他们的原始顺序选择它们。例如,要选择从第1行到第10000行的10000行。
如何实现此目的?
Thanks。

解决方案

表中的行可能是有序的,但是...
表正在并行读取,从不同的映射器或缩减器返回的结果不是原始顺序。这就是为什么你应该知道定义原始顺序的规则。
如果您知道,那么您可以使用 row_number()排序。例如:

select * from table order by ... limit 10000;


I want to select rows from mytable in original rows with definite numbers. As we know, the key word 'limit' will randomly select rows. The rows in mytable are in order. I just want to select them in their original order. For example, to select the 10000 rows which means from row 1 to row 10000. How to realize this? Thanks.

解决方案

Rows in your table may be in order but... Tables are being read in parallel, results returned from different mappers or reducers not in original order. That is why you should know the rule defining "original order". If you know then you can use row_number() or order by. For example:

select * from table order by ... limit 10000;

这篇关于如何在Hive中按原始顺序选择行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆