2014-01-28 34 views

回答

0

你將不得不先GROUP ALL把一切都成一個包,然後聯合起來使用UDF包的內容。事情是這樣的:

-- myudfs.py 
-- #!/usr/bin/python 
-- 
-- @outputSchema('concated: string') 
-- def concat_bag(BAG): 
--  return ','.join(BAG) 
Register 'myudfs.py' using jython as myfuncs; 

A = LOAD 'myfile.txt' AS (letter:chararray) ; 

B = GROUP A ALL ; 

C = FOREACH B GENERATE myfuncs.concat_bag(A.letter) AS all_letters ; 

如果你的文件/架構包含多個列,你可能會想伸出你想生成的字符串列。例如:

A0 = LOAD 'myfile.txt' AS (letter:chararray, val:int, extra:chararray) ; 
A = FOREACH A0 GENERATE letter ; 

這樣你就不會在額外的列周圍,這將減慢已經很昂貴的操作。