我正在尝试 Pig UDF 并且一直在阅读它。虽然在线内容很有帮助,但我仍然不确定我是否了解如何创建具有嵌套包的复杂输出模式。
请帮忙。要求如下。例如,我正在分析电子商务订单数据。一个订单中可以订购多个产品。
我有按订单级别分组的产品级别数据。这是我的 UDF 的输入。因此,包含每个订单中产品信息的订单级别的每个分组数据都是我的输入。
输入架构:
(grouped_at_order, {
(input_column_values_at_product1_level),
(input_column_values_at_product2_level)
})
我将在 UDF 中计算订单级别和产品级别的指标。例如: sum(products) 是一个订单级别的度量,每个产品的颜色是一个产品级别的度量。因此,在发送到 UDF 的订单级别分组的 ForEach 行,我想计算订单级别和项目级别的指标。
预期的输出架构:
{
{ (orders, (computed_values_at_order_level)) },
{(productlevel,
{
(computed_values_at_product1_level),
(computed_values_at_product2_level),
(computed_values_at_product3_level)
}
)
}
}
然后,目标是将订单级别和产品级别的数据保存在来自 pig 的两个单独的输出表中。
有没有更好的方法来做同样的事情?