0

我们有以下示例数据,必须使用 pig 脚本将其转换为输出格式

<< 示例 TSV >>

Id    rank  Value

12324 1     1582

12324 2     1142

12324 4     1292

12324 5     1134

12325 1     1582

12325 2     1142

12325 3     1292

12325 4     1134

12325 5     1183

12326 1     1582

12326 2     1142

12326 3     1292

12326 4     1134

12326 5     1183

我们需要比较每个 id 的每个等级的值(值列的)。

输出需要按以下格式生成

Id1                   Id2

value_rank1           value_rank1

value_rank2           value_rank2

value_rank3           value_rank3

...                   ........

value_rankn           value_rankn

例如

12324     12325   ..

1582       1582

1142       1142

        1292

1292       1134

1134       1183

对于特定 id 的任何缺失排名,必须有一个空白值。

使用 pig 脚本有什么方法可以实现这一点吗?

4

1 回答 1

0

Pig 按记录操作数据(基于行)。在 ETL 操作之后,它会在大多数情况下生成基于行的记录。

根据您的要求,我认为可以使用 UDF(生成占位符)来生成以下内容:

12324, 1582, 1142, , 1292, 1134
12325, 1582, 1142, 1292, 1134, 1183

然后在其他软件中将基于行的数据转置为基于列的数据(例如,在Excel中使用“粘贴特殊->转置”)。

于 2014-02-21T02:18:09.817 回答