与Pig中的字段内的多个存储值进行交互

时间:2018-03-20 01:10:23

标签: hadoop apache-pig apache-zeppelin

我目前正在使用包含多个值的pig中的字段。我希望按位置按用户计算用户数,并使用LOAD按以下格式创建数据:(Location, {(product1), (product2), (product3)}, numOfUsers)。我希望将每个产品分开并将它们视为单独的实体,这意味着我希望最终得到以下结果:

(location, (product1), numOfUsers)
(location, (product2), numOfUsers)
(location, (product3), numOfUsers)

我相信我需要使用某种嵌套的FOREACH函数,但我有点迷失。包含在同一元组中的每个产品的用户数量将是相同的,因为它们被分组并且完全没问题。我是初学者(3天前从猪开始)所以任何指导都将非常感谢。我相信我会使用FLATTEN

1 个答案:

答案 0 :(得分:0)

FOREACH A GENERATE location, FLATTEN(products) AS product, numOfUsers;

解决了这个问题。这创建了存储在包中的所有记录的叉积。使用http://www.st.ewi.tudelft.nl/~hauff/BDP-Lectures/9_10_advanced_pig.pdf作为参考。非常有用的资源。