我目前正在使用包含多个值的pig中的字段。我希望按位置按用户计算用户数,并使用LOAD
按以下格式创建数据:(Location, {(product1), (product2), (product3)}, numOfUsers)
。我希望将每个产品分开并将它们视为单独的实体,这意味着我希望最终得到以下结果:
(location, (product1), numOfUsers)
(location, (product2), numOfUsers)
(location, (product3), numOfUsers)
我相信我需要使用某种嵌套的FOREACH
函数,但我有点迷失。包含在同一元组中的每个产品的用户数量将是相同的,因为它们被分组并且完全没问题。我是初学者(3天前从猪开始)所以任何指导都将非常感谢。我相信我会使用FLATTEN
?
答案 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作为参考。非常有用的资源。