Hadoop 猪:扁平化关键字
我对在PIG中使用Hadoop 猪:扁平化关键字,hadoop,mapreduce,apache-pig,bigdata,Hadoop,Mapreduce,Apache Pig,Bigdata,我对在PIG中使用flatte关键字有点困惑 考虑以下数据集: tuple_record: {details: (firstname: chararray,lastname: chararray,age: int,sex: chararray)} 不使用展平我可以访问如下字段(假设名): display_firstname = FOREACH tuple_record GENERATE details.firstname; display_record = FOREACH flatten_r
flatte
关键字有点困惑
考虑以下数据集:
tuple_record: {details: (firstname: chararray,lastname: chararray,age: int,sex: chararray)}
不使用展平
我可以访问如下字段(假设名):
display_firstname = FOREACH tuple_record GENERATE details.firstname;
display_record = FOREACH flatten_record GENERATE firstname;
现在,使用flatte
关键字:
flatten_record = FOREACH tuple_record GENERATE FLATTEN(details);
描述
给了我以下信息:
flatten_record: {details::firstname: chararray,details::lastname: chararray,details::age: int,details::sex: chararray}
因此,我可以直接访问显示的字段,而无需像这样取消引用:
display_firstname = FOREACH tuple_record GENERATE details.firstname;
display_record = FOREACH flatten_record GENERATE firstname;
与此flatte
关键字相关的问题如下:
1) 在这两种方法中(即使用或不使用展平
)哪种方法是实现相同输出的最佳方法
2) 如果不使用展平
关键字,则无法实现所需输出的任何特殊情况
一头雾水,;请说明它的用途,以及我将在哪些情况下使用它