假设我有两个数据集
ID Name
1 Dog
2 Cat
和另一个数据集
ID Name Age
3 Man 23
我将两个装入猪,然后从第二个中删除年龄字段,现在我如何将两个结合起来以便我得到
Id Name
1 Dog
2 Cat
3 Man
它们可以分布在地图绘制器上,并以任何顺序添加到任何映射器。我只是希望它们在一起,所以我可以在下一个map-reduce阶段执行类似操作(删除重复并获取最新的时间戳)。
答案 0 :(得分:1)
试试这个,
set1 = load 'dataset1' as (ID,Name);
set2 = load 'dataset2' as (ID,Name,Age);
set3 = foreach set2 generate ID,Name;
Result = UNION set1,set3;
答案 1 :(得分:0)
使用UNION
:http://pig.apache.org/docs/r0.12.1/basic.html#union
正如您在示例中所看到的,您不需要从set2中删除Age字段
但如果您愿意,只需使用GENERATE
set3 = foreach set2 GENERATE Id, Name.
set4 = set1 UNION set3
此致
答案 2 :(得分:0)
set1 = load' dataset1' as(ID,Name);
set2 = load' dataset2' as(身份证,姓名,年龄);
set3 = foreach set2生成ID,名称;
结果= UNION set1,set3;
但输出顺序可能会发生变化
但是当你转储时,你可能会得到
Id名称
3人
1只狗
2只猫
当我们在猪中执行UNION时,订单会发生变化,对于上述数据,您可能找不到任何差异,但是当我们为两个以上的文件执行联合时,订单会发生变化。