我使用pig来准备数据,我遇到了一个看似简单但却无法解决的问题:例如,我有一列名字input:-
id | name
-------------
1 | Alicia
2 | Ana
3 | Benita
4 | Berta
5 | Bertha
我期待你的到来output:-(我们可以使用forloop功能来实现这一点吗?)
id | name
--------------------------
1_XX_1 | Alicia_id_1
2_XX_1 | Ana_id_1
3_XX_1 | Benita_id_1
4_XX_1 | Berta_id_1
5_XX_1 | Bertha_id_1
1_XX_2 | Alicia_id_2
2_XX_2 | Ana_id_2
3_XX_2 | Benita_id_2
4_XX_2 | Berta_id_2
5_XX_2 | Bertha_id_2
1_XX_3 | Alicia_id_3
2_XX_3 | Ana_id_3
3_XX_3 | Benita_id_3
4_XX_3 | Berta_id_3
5_XX_3 | Bertha_id_3
1条答案
按热度按时间xqnpmsa81#
您可以使用udf来实现这一点,这将为您提供一些关于输入想要被复制的次数的可重用性。下面的自定义项就可以做到这一点。
输入文件:
1,艾丽西亚
2,安娜
3,贝尼塔
4,伯塔
5,伯莎
输出:
(1\ xx\ 1,alicia\ id\ 1)
(1\u xx\u 2,alicia\u id\u 2)
(1\ xx\ U 3,艾丽西亚\ id\ U 3)
(2\u xx\u 1,ana\u id\u 1)
(2×2,全名2)
(2×3,全名3)
(3\ xx\ U 1,benita\ U id\ U 1)
(3\ xx\ U 2,贝尼塔\ id\ U 2)
(贝尼塔3号)
(4\ xx\ 1,伯塔id\ 1)
(4\ xx\ U 2,伯塔id\ U 2)
(4\ xx\ U 3,伯塔id\ U 3)
(5号,伯莎1号)
(5\ xx\ U 2,伯莎\ id\ U 2)
(5号,伯莎3号)