Dividindo uma tupla em várias tuplas no Pig

Eu gosto de gerar múltiplas tuplas a partir de uma única tupla. O que quero dizer é: tenho arquivo com os seguintes dados nele.

>> cat data
ID | ColumnName1:Value1 | ColumnName2:Value2

então eu carrego pelo seguinte comando

grunt >> A = load '$data' using PigStorage('|');    
grunt >> dump A;    
(ID,ColumnName1:Value1,ColumnName2:Value2) 

Agora eu quero dividir esta tupla em duas tuplas.

(ID, ColumnName1, Value1)
(ID, ColumnName2, Value2)

Posso usar o UDF junto com foreach e gerar. Alguma coisa como o seguinte?

grunt >> foreach A generate SOMEUDF(A)

EDITAR:

tupla de entrada: (id1, coluna1, coluna2) saída: duas tuplas (id1, coluna1) e (id2, coluna2), portanto, é Lista ou devo devolver uma Mala?

public class SPLITTUPPLE extends EvalFunc <List<Tuple>>
{
    public List<Tuple> exec(Tuple input) throws IOException {
        if (input == null || input.size() == 0)
            return null;
        try{
            // not sure how whether I can create tuples on my own. Looks like I should use TupleFactory.
            // return list of tuples.
        }catch(Exception e){
            throw WrappedIOException.wrap("Caught exception processing input row ", e);
        }
    }
}

Esta abordagem é correta?

questionAnswers(3)

yourAnswerToTheQuestion