如何为 PIG 或 HIVE 中的行添加行号?
我在使用 Apache Pig 添加行号时遇到问题。 问题是我有一个 STR_ID 列,我想为 STR_ID 中的数据添加一个 ROW_NUM 列,即 STR_ID 的行号。
例如,以下是输入:
STR_ID
------------
3D64B18BC842
BAECEFA8EFB6
346B13E4E240
6D8A9D0249B4
9FD024AA52BA
如何获得如下输出:
STR_ID | ROW_NUM
----------------------------
3D64B18BC842 | 1
BAECEFA8EFB6 | 2
346B13E4E240 | 3
6D8A9D0249B4 | 4
9FD024AA52BA | 5
使用 Pig 或 Hive 的答案是可以接受的。谢谢。
I have a problem when adding row numbers using Apache Pig.
The problem is that I have a STR_ID column and I want to add a ROW_NUM column for the data in STR_ID, which is the row number of the STR_ID.
For example, here is the input:
STR_ID
------------
3D64B18BC842
BAECEFA8EFB6
346B13E4E240
6D8A9D0249B4
9FD024AA52BA
How do I get the output like:
STR_ID | ROW_NUM
----------------------------
3D64B18BC842 | 1
BAECEFA8EFB6 | 2
346B13E4E240 | 3
6D8A9D0249B4 | 4
9FD024AA52BA | 5
Answers using Pig or Hive are acceptable. Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
在 Hive 中:
查询
输出
In Hive:
Query
Output
Facebook 发布许多 Hive UDF,包括 NumberRows。根据您的配置单元版本(我相信是 0.8),您可能需要向类添加一个属性(stateful=true)。
Facebook posted a number of hive UDFs including NumberRows. Depending on your hive version (I believe 0.8) you may need to add an attribute to the class (stateful=true).
Pig 0.11 引入了一个可用于此目的的 RANK 运算符。
Pig 0.11 introduced a RANK operator that can be used for this purpose.
对于想了解 Pig 的人们,我发现(当前)最好的方法是编写自己的 UDF。
我想为袋子中的元组添加行号。这是代码:
此代码仅供参考。可能无法防错。
For folks wondering about Pig, I found the best way (currently) is to write your own UDF.
I wanted to add row numbers for tuples in a bag. This is the code for that:
This code is for reference only. Might not be error-proof.
在我的示例中,这对您来说是一个很好的答案
步骤 1. 定义 row_sequence() 函数来处理自动增加 ID
步骤 2. 插入唯一的 ID 和 ID。 STR
This is good answer for you on my example
Step 1. Define row_sequence() function to process for auto increase ID
Step 2. Insert unique id & STR
从版本 0.11 开始,hive 支持分析函数,如领先、落后以及行号
https://issues .apache.org/jira/browse/HIVE-896
From version 0.11, hive supports analytic functions like lead,lag and also row number
https://issues.apache.org/jira/browse/HIVE-896
Hive 解决方案 -
或者,如果您想让行按 STR_ID 升序 -
Hive solution -
Or, if you want to have rows ascending by STR_ID -
在蜂巢中:
In Hive: