我有一个带有以下输出(一行)的Pig查询
(6,{(6,76,35,1565),(6,76,76,920),(6,35,76,906),(6,177,35,822),(6,268,35,720),(6,35,177,701) ,(6,35,268,694),(6,35,35,656),(6,85,85,611),(6,35,90,559)})
我想将包的每个元素转换为字段,所以
(6,(6,76,35,1565),(6,76,76,920),(6,35,76,906),(6,177,35,822),(6,268,35,720),(6,35,177,701), (6,35,268,694),(6,35,35,656),(6,85,85,611),(6,35,90,559))
我可以用不同的名称命名每个字段:x1,x2,x3,.... 我尝试了展平,但是对于包的每个元素都做了一行:
6,(6,76,35,1565)
6,(6,76,76,920)
6,(6,35,76,906)
我希望所有元素都保留在一行中。
有什么想法吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您必须使用BagToTuple。假设您有两个字段的关系A.
B = FOREACH A GENERATE A.$0,FLATTEN(BagToTuple(A.$1));