在猪中如何连接袋子中的所有物品? [英] In pig How to concatenate all items in bag ?

查看:16
本文介绍了在猪中如何连接袋子中的所有物品?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个像

 {A, {1,2,3}}
 {B, {4,5,6}}

我想要的是

 {A, "1|2|3"}
 {B, "4|5|6"}

  • 我查看了 CONCAT 运算符,但这并不能帮助我实现我想要的.
  • 推荐答案

    使用 Python UDF 最容易实现这一点.

    This is most easily achieved with a Python UDF.

    myudfs.py

    #!/usr/bin/python
    
    @outputSchema('concated: string')
    def concat_bag(BAG):
        return '|'.join([ str(i) for i in BAG ])
    

    它可以像这样使用:

    Register 'myudfs.py' using jython as myfuncs;
    
    -- Schema of A is: A:{ T:(letter: chararray, B_of_nums: {num: int}) }
    
    B = FOREACH A GENERATE TOTUPLE(T.letter, myfuncs.concat_bag(T.B_of_nums)) ;
    
    -- The output should be:
    -- (A, 1|2|3)
    -- (B, 1|2|3)
    

    这篇关于在猪中如何连接袋子中的所有物品?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆