将相同的值写入具有相同 ID 的所有行

Write the same value to all rows with the same ID

我正在寻找一种方法来将相同的值写入具有相同 ID 的所有记录。我使用 Apache Pig 在 HDFS 环境中加载这个 table 并且只有这个转换(作为 UDF)才需要 python 代码这是一个例子:

    ID   ; firstname ; lastname
   1234    Alex        Jones
   1234    Frank       na
   1234    Maria       na

我需要的是将姓氏 (Jones) 分配给具有相同 ID 的每个人。我知道如何用 pandas 做到这一点,但对我来说问题是我必须在不使用任何包的情况下做到这一点。 任何建议表示赞赏!谢谢!

过滤ID、姓氏组合,然后将ID、姓氏区分成一个关系并将其与原始关系连接起来,最后生成所需的列。 假设数据加载到关系A中,则

B = FILTER A BY (lastname != 'na');
C = FOREACH B GENERATE ID,lastname;
D = DISTINCT C;
E = JOIN A BY ID,D BY ID;
F = FOREACH E GENERATE A.ID,A.firstname,D.lastname;
DUMP F;

关系 D 将具有 1234,Jones,因为您过滤了“na”,然后 distinct.Then 在连接关系 E 之后看起来像

1234    Alex     Jones    1234    Jones
1234    Frank    na       1234    Jones
1234    Maria    na       1234    Jones

从上面你可以得到关系 A 的前两列和关系 D.Finally F 的最后一列

1234    Alex    Jones
1234    Frank   Jones
1234    Maria   Jones