本文介绍了在猪中如何将袋中的所有物品串联起来?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个类似
{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)
这篇关于在猪中如何将袋中的所有物品串联起来?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!