如何在 Pig 中组合数据集?
How to combine datasets in Pig?
我想在 Pig 中合并 2 个数据集,但对如何操作有点困惑。
假设我有 aliasA
和
qwe 0
rty 0
asd 0
和aliasB
与
dfgg 0
dgfg 0
两者具有相同的列名,两者的 column1 都是 Name
,两者的 column2 都是 id
,这不像主键或其他任何东西。
有没有什么办法可以简单地将这两个集合组合起来而不需要花哨的东西?完整的外部联接会使列的数量加倍,这是我不想要的。
基本上,我想要
qwe 0
rty 0
asd 0
dfgg 0
dgfg 0
看看 UNION 运算符,它完全符合您的要求。它将关系合并为一个,但在一个条件下:UNION
中使用的所有关系必须有一个已知的模式,按照你所说的,这不是你的问题。使用 ONSCHEMA
使联合基于命名字段。
aliasA = LOAD 'data1' AS (Name:chararray,id:int);
DUMP aliasA;
(qwe,0)
(rty,0)
(asd,0)
aliasB = LOAD 'data2' AS (Name:chararray,id:int);
DUMP aliasB;
(dfgg,0)
(dgfg,0)
X = UNION aliasA, aliasB;
DUMP X;
(qwe,0)
(rty,0)
(asd,0)
(dfgg,0)
(dgfg,0)
我想在 Pig 中合并 2 个数据集,但对如何操作有点困惑。
假设我有 aliasA
和
qwe 0
rty 0
asd 0
和aliasB
与
dfgg 0
dgfg 0
两者具有相同的列名,两者的 column1 都是 Name
,两者的 column2 都是 id
,这不像主键或其他任何东西。
有没有什么办法可以简单地将这两个集合组合起来而不需要花哨的东西?完整的外部联接会使列的数量加倍,这是我不想要的。
基本上,我想要
qwe 0
rty 0
asd 0
dfgg 0
dgfg 0
看看 UNION 运算符,它完全符合您的要求。它将关系合并为一个,但在一个条件下:UNION
中使用的所有关系必须有一个已知的模式,按照你所说的,这不是你的问题。使用 ONSCHEMA
使联合基于命名字段。
aliasA = LOAD 'data1' AS (Name:chararray,id:int);
DUMP aliasA;
(qwe,0)
(rty,0)
(asd,0)
aliasB = LOAD 'data2' AS (Name:chararray,id:int);
DUMP aliasB;
(dfgg,0)
(dgfg,0)
X = UNION aliasA, aliasB;
DUMP X;
(qwe,0)
(rty,0)
(asd,0)
(dfgg,0)
(dgfg,0)