PIG 中的多条记录到一条记录

Multiple records to a single record in PIG

我输入的文件如下。

1,Cust_name1,addr_type,Addr1
1,Cust_name1,addr_type,Addr2
2,Cust_name3,addr_type,Addr1
2,Cust_name3,addr_type,Addr3

想要将其转换为 Avro 格式。

输出应该像

1,Cust_name1,{(addr_type,Addr1),(addr_type,Addr2)
1,Cust_name3,{(addr_type,Addr1),(addr_type,Addr3)

我想为每个客户在 avro 中生成一条消息并在数组中生成重复元素。

GROUP by Id and Customer Name.In 为了以 Avro 格式存储使用 piggybank.jar 中可用的 AvroStorage 并在您的 script.It 中注册它可以从 here 下载

REGISTER /path/piggybank.jar;
A = LOAD 'data.txt' USING PigStorage(',') AS (int:id;name:chararray;addrtype:chararray;addr:chararray);
B = GROUP A BY (id,name);
STORE B INTO '/path/' USING org.apache.pig.piggybank.storage.avro.AvroStorage();;